zastavení druhé: kontrola kernel configu a opakuvaní buildu
Čerajšek sa celkom podareu, naklonuvani sa hybris repozitáre, naklonuvali sa veci ohľadom hotdogu, pomaly to začína potenciálne chytať aj voláky ten tvar.
Uvidíme čo sa podarí spraviť za neskajšek, zhľadom na to, že do LineageOS 10ky ešte furt nemóžem ísť a teda nemóžem polla toho došteluvať mountpointy a skontroluvať detaily.
Neskajšé etapy
0. znovunašteluvaní environmentu od Platform SDKčka po build raňajky
Code: Select all
export PLATFORM_SDK_ROOT=/srv/sailfishos
sfossdk
ubu-chroot -r $PLATFORM_SDK_ROOT/sdks/ubuntu
cd hadk
source build/envsetup.sh
export USE_CCACHE=1
breakfast $DEVICE
1. kontrola kernel configu,
Code: Select all
hybris/mer-kernel-check/mer_verify_kernel_config ./out/target/product/$DEVICE/obj/KERNEL_OBJ/.config
výsledek:
Code: Select all
WARNING: CONFIG_NETFILTER_XT_MATCH_SCTP is invalid
It is unset
Allowed values : y, m, !
Comment says: connman: for iptables sctp match
WARNING: CONFIG_CGROUP_PERF is invalid
It is unset
Allowed values : y, !
Comment says: systemd (optional): https://github.com/systemd/systemd/blob/v238/README
WARNING: CONFIG_WATCHDOG_NOWAYOUT is invalid
It is unset
Allowed values : y, !
Comment says: If device uses watchdogs with dsme (https://github.com/sailfishos/dsme), this option should be enabled or watchdog does not protect the device in case dsme crashes.
WARNING: CONFIG_IP6_NF_MATCH_FRAG is invalid
It is unset
Allowed values : y, m, !
Comment says: connman: for ip6tables frag match
WARNING: CONFIG_RTC_DRV_CMOS is invalid
It is unset
Allowed values : y, !
Comment says: optional, but highly recommended, not available on arm64
WARNING: CONFIG_NF_NAT_IPV6 is invalid
It is unset
Allowed values : y, m, !, >=3.7, <=5.0
Comment says: connman: to enable IPv6 NAT, optional as exists in kernel between 3.7 to 5.0
ERROR: CONFIG_SYSVIPC is invalid
It is unset
Allowed values : y
Comment says: Inter Process Communication option is required to run Mer
WARNING: CONFIG_BT_BNEP_MC_FILTER is invalid
It is unset
Allowed values : y, !
Comment says: Bluez (optional): Needed if bluetooth networking is wanted, e.g. for bluetooth tethering
WARNING: CONFIG_BTRFS_FS is invalid
It is unset
Allowed values : y, !
Comment says: optional extra filesystem (BTRFS)
WARNING: CONFIG_SUNRPC_GSS is invalid
It is unset
Allowed values : y, m, !
Comment says: optional, for NFS support
WARNING: CONFIG_NFS_ACL_SUPPORT is invalid
It is unset
Allowed values : y, m, !
Comment says: optional, for NFS support
WARNING: CONFIG_BLK_DEV_NBD is invalid
It is unset
Allowed values : y, m, !
Comment says: optional, for NFS & CIFS support
ERROR: CONFIG_FHANDLE is invalid
It is unset
Allowed values : y
Comment says: systemd: http://cgit.freedesktop.org/systemd/systemd/commit/README?id=001809282918f273d372f1ee09d10b783c18a474
WARNING: CONFIG_CGROUP_DEVICE is invalid
It is unset
Allowed values : y, !
Comment says: systemd (optional): https://github.com/systemd/systemd/blob/v238/README
WARNING: CONFIG_NETFILTER_NETLINK_ACCT is invalid
It is unset
Allowed values : y, m, !
Comment says: connman (optional): for routing and statistic support in sessions, http://git.kernel.org/cgit/network/connman/connman.git/commit/README?id=41f37125887cb9208da2441e350e1e3324c17ee6
WARNING: CONFIG_LBDAF is invalid
It is unset
Allowed values : y, !
Comment says: ext4 filesystem requires this in order to support filesysetms with huge_file feature, which is enabled by default by mke2fs.ext4, not needed for 64bit architectures
WARNING: CONFIG_BT_BNEP is invalid
It is unset
Allowed values : y, !
Comment says: Bluez (optional): Needed if bluetooth networking is wanted, e.g. for bluetooth tethering
WARNING: CONFIG_SECURITY_SELINUX_BOOTPARAM is invalid
It is unset
Allowed values : y, !
Comment says: Up to hybris-16 it's recommended to have SELinux disabled at boottime via kernel cmdline: selinux=0 or SECURITY_SELINUX_BOOTPARAM_VALUE=0. For hybris-17 SELinux should be left enabled.
WARNING: CONFIG_IP6_NF_MATCH_MH is invalid
It is unset
Allowed values : y, m, !
Comment says: connman: for ip6tables mh match
WARNING: CONFIG_BT_HIDP is invalid
It is unset
Allowed values : y, !
Comment says: Bluez (optional): Needed for HIDP (Human Interface Device Protocol) transport layer
WARNING: CONFIG_AUTOFS4_FS is invalid
It is unset
Allowed values : y, m, !
Comment says: systemd (optional): http://cgit.freedesktop.org/systemd/systemd/commit/README?id=713bc0cfa477ca1df8769041cb3dbc83c10eace2
WARNING: CONFIG_HIDRAW is invalid
It is unset
Allowed values : y, m, !
Comment says: optional: Support HID devices
WARNING: CONFIG_BT_HCIUART is invalid
It is unset
Allowed values : y, !
Comment says: Bluez (optional): Needed if bluez used as bluetooth stack
WARNING: CONFIG_NFS_V3_ACL is invalid
It is unset
Allowed values : y, !
Comment says: optional, for NFS support
WARNING: CONFIG_IP6_NF_MATCH_AH is invalid
It is unset
Allowed values : y, m, !
Comment says: connman: for ip6tables ah match
WARNING: CONFIG_IPC_NS is invalid
It is unset
Allowed values : y, !
Comment says: optional, enables kernel namespaces for systemd-nspawn containers
WARNING: CONFIG_LOCKD_V4 is invalid
It is unset
Allowed values : y, !
Comment says: optional, for NFS support
WARNING: CONFIG_CGROUP_NET_PRIO is invalid
It is unset
Allowed values : y, !, >=3.14
Comment says: systemd (optional): https://github.com/systemd/systemd/blob/v238/README
WARNING: CONFIG_NFS_V4 is invalid
It is unset
Allowed values : y, !
Comment says: optional, for NFS support
WARNING: CONFIG_UDF_FS is invalid
It is unset
Allowed values : y, m, !
Comment says: optional extra filesystem (DVD & portable USB)
WARNING: CONFIG_BT_BNEP_PROTO_FILTER is invalid
It is unset
Allowed values : y, !
Comment says: Bluez (optional): Needed if bluetooth networking is wanted, e.g. for bluetooth tethering
WARNING: CONFIG_PID_NS is invalid
It is unset
Allowed values : y, !
Comment says: optional, enables kernel namespaces for systemd-nspawn containers
WARNING: CONFIG_NFS_USE_KERNEL_DNS is invalid
It is unset
Allowed values : y, !
Comment says: optional, for NFS support
WARNING: CONFIG_NETFILTER_XT_MATCH_RECENT is invalid
It is unset
Allowed values : y, m, !
Comment says: connman: for iptables recent match
WARNING: CONFIG_SECURITY_YAMA_STACKED is invalid
It is unset
Allowed values : y, !, <4.3
Comment says: optional, only valid for kernel < 4.3
ERROR: CONFIG_NLS_UTF8 is invalid
It is unset
Allowed values : y
Comment says: Ensure that we support UTF8 filenames.
WARNING: CONFIG_BT_RFCOMM is invalid
It is unset
Allowed values : y, !
Comment says: Bluez (optional): Needed if bluez used as bluetooth stack
WARNING: CONFIG_UTS_NS is invalid
It is unset
Allowed values : y, !
Comment says: optional, enables kernel namespaces for systemd-nspawn containers
WARNING: CONFIG_CHECKPOINT_RESTORE is invalid
It is unset
Allowed values : y, !
Comment says: rich-core-dumper (https://github.com/mer-tools/sp-rich-core/) needs this to collect all data for environment recreation.
WARNING: CONFIG_BT_HCIUART_H4 is invalid
It is unset
Allowed values : y, !
Comment says: Bluez (optional): Needed if bluez used as bluetooth stack
WARNING: CONFIG_ISO9660_FS is invalid
It is unset
Allowed values : y, m, !
Comment says: optional extra filesystem (CD-ROM)
WARNING: CONFIG_CIFS is invalid
It is unset
Allowed values : y, m, !
Comment says: optional extra filesystem (CIFS - Windows net fs)
WARNING: CONFIG_NFS_V3 is invalid
It is unset
Allowed values : y, !
Comment says: optional, for NFS support
ERROR: CONFIG_DUMMY is invalid
Value is: y
Allowed values : n
Use of uninitialized value in concatenation (.) or string at hybris/mer-kernel-check/mer_verify_kernel_config line 204, <> line 6132.
Comment says:
WARNING: CONFIG_SUNRPC is invalid
It is unset
Allowed values : y, m, !
Comment says: optional, for NFS support
WARNING: CONFIG_CUSE is invalid
It is unset
Allowed values : y, !, >=2.6
Comment says: CUSE (optional): Required for software security modules support.
ERROR: CONFIG_DEVTMPFS_MOUNT is invalid
It is unset
Allowed values : y
Comment says: Required by hybris-boot init-script
WARNING: CONFIG_BT_HCIVHCI is invalid
It is unset
Allowed values : y, !
Comment says: Bluez (optional): Needed if bluebinder is used with bluez (Android 8+ based ports)
WARNING: CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE is invalid
It is unset
Allowed values : 0, !
Comment says: Alternative way to disable SELinux at boottime
WARNING: CONFIG_SECURITY_YAMA is invalid
It is unset
Allowed values : y, !
Comment says: optional, prevents user's processes from ptracing each other
WARNING: CONFIG_NFS_FS is invalid
It is unset
Allowed values : y, m, !
Comment says: optional, for NFS support
WARNING: CONFIG_FANOTIFY is invalid
It is unset
Allowed values : y, !
Comment says: optional, required for systemd readahead.
WARNING: CONFIG_NETFILTER_XT_MATCH_DCCP is invalid
It is unset
Allowed values : y, m, !
Comment says: connman: for iptables dccp match
ERROR: CONFIG_DEVTMPFS is invalid
It is unset
Allowed values : y
Comment says: systemd: https://github.com/systemd/systemd/blob/v238/README
WARNING: CONFIG_LOCKD is invalid
It is unset
Allowed values : y, m, !
Comment says: optional, for NFS support
WARNING: CONFIG_NETFILTER_XT_MATCH_NFACCT is invalid
It is unset
Allowed values : y, m, !
Comment says: connman (optional): for routing and statistic support in sessions, http://git.kernel.org/cgit/network/connman/connman.git/commit/README?id=41f37125887cb9208da2441e350e1e3324c17ee6
WARNING: CONFIG_MEMCG_KMEM is invalid
It is unset
Allowed values : y, !, >=3.6
Comment says: systemd (optional, but recommended): https://github.com/systemd/systemd/blob/v238/README, only valid if kernel version >= 3.6
WARNING: CONFIG_NFS_COMMON is invalid
It is unset
Allowed values : y, !
Comment says: optional, for NFS support
ERROR: CONFIG_VT is invalid
It is unset
Allowed values : y
Comment says: Required for virtual consoles
WARNING: CONFIG_NFS_V4_1 is invalid
It is unset
Allowed values : y, !
Comment says: optional, for NFS support
2. lokalizuvaní kernelu a dohodení flagov
Code: Select all
cat $ANDROID_ROOT/device/$VENDOR/*/BoardConfig*.mk | grep GET_KERNEL_CONFIG
výsledkom je
TARGET_KERNEL_CONFIG := vendor/sm8150-perf_defconfig z kerého cestu treba napasuvať na
nano kernel/oneplus/sm8150/arch/arm64/configs/ čo otvorí kernel config do kerého sa budú zapínať šecky flagy z výsledku prvého kontroluvača
Nazaťál teda iba ERROR flagy
Code: Select all
# Hybris flagy - tí s ERRORom
CONFIG_SYSVIPC=y
CONFIG_FHANDLE=y
CONFIG_NLS_UTF8=y
CONFIG_DUMMY=n
CONFIG_DEVTMPFS_MOUNT=y
CONFIG_DEVTMPFS=y
CONFIG_VT=y
3. opakuvaní kernel buildu
Na zopakuvaní kernel buildu čil stačí teda iba
make -j$(nproc --all) hybris-boot
odporúčam si spraviť kávu, porozmýšlať čo ešte treba spraviť, kávu vypiť, možno spraviť aj čaj, vypiť aj ten a vrátiť sa k tomu s tým že to furt dosť pravdepodobne nebude vybuilduvané
#### build completed successfully (33:26 (mm:ss)) ####
4. opakuvaná kontrola kernel configu
pustení príkazu z etapy 1. vrátilo teda zoznam už iba s warningmi, tým pádom to je už na potenciálne lepšej ceste k funkčnosti
Etapy ohľadom Platform SDKčka/Droid HALu
menšé oddelení, čas sprobuvať poríšiť build tooling
0. sťáhnutí povinností a nainštaluvaní toolingu s targetom
Code: Select all
exit
mkdir hadk-test-tmp
exit
wget https://releases.sailfishos.org/sdk/targets/Sailfish_OS-4.6.0.13-Sailfish_SDK_Tooling-i486.tar.7z
wget https://releases.sailfishos.org/sdk/targets/Sailfish_OS-4.6.0.13-Sailfish_SDK_Target-aarch64.tar.7z
sfossdk
sdk-assistant create SailfishOS-4.6.0.13 Sailfish_OS-4.6.0.13-Sailfish_SDK_Tooling-i486.tar.7z
sdk-assistant create $VENDOR-$DEVICE-$PORT_ARCH Sailfish_OS-4.6.0.13-Sailfish_SDK_Target-aarch64.tar.7z
1. vykompiluvaní a otestuvaní ahoj świat testuvačky
Code: Select all
cd hadk-test-tmp
cat > main.c << EOF
#include <stdlib.h>
#include <stdio.h>
int main(void) {
printf("Hello, world!\n");
return EXIT_SUCCESS;
}
EOF
# vybuilduvaní
mb2 -t $VENDOR-$DEVICE-$PORT_ARCH build-init
mb2 -t $VENDOR-$DEVICE-$PORT_ARCH build-shell gcc main.c -o test
# otestuvaní
mb2 -t $VENDOR-$DEVICE-$PORT_ARCH build-shell ./test
dostaneme "Hello, world!"? úspech, nedostaneme "Hello, world!"? V tom prípade nevím, na mojej mašine to ide.
2. vyskladaní droid halu pre systém
Code: Select all
cd $ANDROID_ROOT
mkdir rpm
cd rpm
git init
git submodule add https://github.com/mer-hybris/droid-hal-device dhd
sed -e "s/@DEVICE@/$DEVICE/" \
-e "s/@VENDOR@/$VENDOR/" \
-e "s/@DEVICE_PRETTY@/7T Pro/" \
-e "s/@VENDOR_PRETTY@/OnePlus/" \
dhd/droid-hal-@DEVICE@.spec.template > droid-hal-$DEVICE.spec
git add .
git commit -m "[dhd] Initial content"
git remote add myname https://github.com/370network/droid-hal-$DEVICE.git
git push myname master
3. vyskladaní droid configu
Code: Select all
cd -
mkdir -p hybris/droid-configs
cd hybris/droid-configs
git init
git submodule add https://github.com/mer-hybris/droid-hal-configs \
droid-configs-device
mkdir rpm
sed -e "s/@DEVICE@/$DEVICE/" \
-e "s/@VENDOR@/$VENDOR/" \
-e "s/@DEVICE_PRETTY@/7T Pro/" \
-e "s/@VENDOR_PRETTY@/OnePlus/" \
droid-configs-device/droid-config-@DEVICE@.spec.template > \
rpm/droid-config-$DEVICE.spec
cat <<'EOF' >> .gitignore
tmp
documentation.list
debug*.list
installroot
EOF
git add .
git commit -m "[dcd] Initial content"
git remote add myname https://github.com/370network/droid-config-$DEVICE.git
git push myname master
4. vyskladaní droid hal verzie
Code: Select all
cd -
rpm/dhd/helpers/add_new_device.sh
cd hybris/droid-configs
git add .
git commit -m "[dcd] Patterns and compositor config"
git push myname master
cd -
mkdir -p hybris/droid-hal-version-$DEVICE
cd hybris/droid-hal-version-$DEVICE
git init
git submodule add https://github.com/mer-hybris/droid-hal-version
mkdir rpm
sed -e "s/@DEVICE@/$DEVICE/" \
-e "s/@VENDOR@/$VENDOR/" \
-e "s/@DEVICE_PRETTY@/7T Pro/" \
-e "s/@VENDOR_PRETTY@/OnePlus/" \
droid-hal-version/droid-hal-version-@DEVICE@.spec.template > \
rpm/droid-hal-version-$DEVICE.spec
git add .
git commit -m "[dvd] Initial content"
git remote add myname \
https://github.com/370network/droid-hal-version-$DEVICE.git
git push myname master
5. dodatočné hovadiny pre config a hal (pre šecko rovné a novšé jak LineageOS 17 + bla bla)
kde do
nano hybris/droid-configs/rpm/droid-config-hotdog.spec treba nasypať "
%define android_version_major 10"
do
nano rpm/droid-hal-hotdog.spec sa rve "
%define droid_target_aarch64 1"
do
nano device/oneplus/hotdog/device.mk treba dať "
PRODUCT_ENFORCE_VINTF_MANIFEST := false"
6. builduvaní balíčkov
Code: Select all
cd $ANDROID_ROOT
rpm/dhd/helpers/build_packages.sh --droid-hal
rpm/dhd/helpers/build_packages.sh --configs
rpm/dhd/helpers/build_packages.sh --mw
rpm/dhd/helpers/build_packages.sh --gg
rpm/dhd/helpers/build_packages.sh --version
toto hneď pri droid-hale vykrachuvalo lebo mám naprd flagy
TÚT TÚT: kernel config zmeny mám vraj robiť ináč
Code: Select all
cd out/target/product/hotdog/obj/KERNEL_OBJ/
ARCH=arm64 make menuconfig
čil treba prejsť ten zoznam z kontroluvačky ešte raz a poprepínať to
potom treba už len
Code: Select all
ARCH=arm64 make savedefconfig
mv defconfig $ANDROID_ROOT/kernel/oneplus/sm8150/arch/arm64/configs/vendor/sm8150-perf_defconfig
export PRODUCT_ENFORCE_VINTF_MANIFEST=false
breakfast $DEVICE
cd $ANDROID_ROOT
make -j$(nproc --all) hybris-hal
pán Muhammad nechápe že prečo mi to nejde
update: 27.3. 12:20, Muhammad s tým volačo narobeu, spomenul si na pár flagov a narval ich tam, móžem pokračuvať. Z tohoto dóvodu ostáva druhé zastavení maximálne chaotické, bude sa to moseť potom začať celé kompletne ešte raz
odsek s Muhammadom je asi mierne irelevantný, dohodil tam pár fixov ale podstatnejšé bude asi najprv premazať
Code: Select all
rm -rf ./out/target/product/hotdog/obj/DTBO_OBJ/
rm -rf ./out/target/product/hotdog/obj/DTB_OBJ/
zopakujem
6. zas, uvidíme čo ďalej, z druhého zastaveňá ostáva fakt dobrý bordel
čil mi preistotu chýbal python v toolingu
Code: Select all
sdk-assistant package-install $VENDOR-$DEVICE-$PORT_ARCH python2
do
device/oneplus/hotdog/rootdir/etc/fstab.qcom treba prihodiť boot rádek?
druhé chaosové zastavení sa končí, nevyzíra to moc nádejne po stránke čistoty....
uvidíme najbližší