Android編譯筆記一

2021-08-29 20:22:25 字數 2226 閱讀 4719

在kernel下的make menuconfig中禁用es8323

在kernel中執行make  -j8  firefly-rk3288.img 報錯顯示如下

看了kconfig menuconfig .config makefie 的關係後,依然毫無頭緒,順便貼一下網上看到的四者的關係

makefile裡面的條件編譯是由.config中的巨集決定的,而.config中的巨集是否被注釋又是有make menuconfig中選擇決定的,而make menuconfig中的是否存在這個配置選項則是由kconfig決定的,由此串聯起來了四者的關係(就目前來說,makefile和.config的關係沒搞明白)

根據報錯資訊sound/built-in.o: in function `snd_stop_hdmi_in_audio_route_l.part.2':

last.c:(.text+0x42c98): undefined reference to `es8323_codec_set_reg'

sound/built-in.o: in function `snd_start_hdmi_in_audio_route_l.part.3':

last.c:(.text+0x42d14): undefined reference to `es8323_codec_set_reg'

make: *** [vmlinux] error 1

搜了一下有在下圖的兩個檔案裡感覺無意義,先捨棄了

在menuconfig的搜尋了es8323中的結果,進入目錄kernel/soun/soc/rockchip開啟kconfig檔案,找到了config snd_rk_soc_es8323是打算注釋掉這個選項先試試

報錯依舊

根據menuconfig中的搜尋顯示,接下來準備把目錄/kernel/sound/soc/codecs下的kconfig也改了

在kernel下編譯make -j8  firefly-rk3288.img,報錯依舊

在kconfig中禁掉而是es8323確實在menuconfig中找不到es8323這個選項,進行的第乙個驗證是在kernel/sound/soc/rockchip的kconfig中禁掉了es8323(前文有)然後就發現menuconfig中沒有es8323了,

想進一步驗證,取消之前在kernel/sound/soc/rockchip/kconfig中的禁用,禁掉kernel/sound/soc/codecs/kconfig中的es8323(前文有),然後再menuconfig中發現無效的。所以是在上乙個kconfig中,反映了menuconfig的選項

接下來想著根據報錯的資訊搜尋'es8323_codec_set_reg'

發現了hdmiin_audio.c這個檔案,和報錯的資訊sound/built-in.o: in function `snd_stop_hdmi_in_audio_route_l.part.2'很像,開啟這個檔案看看。可能在這個檔案中登出報錯語句。開啟檔案後注釋掉es8323相關語句,

再kernel中執行編譯通過!

並且燒錄到板子上後,es8323的資訊沒了

android編譯筆記

清華大學映象 linaro映象 一 repo sync 是出現錯誤 error cannot fetch platform prebuilts qemu kernel fatal unable to connect to aosp.tuna.tsinghua.edu.cn aosp.tuna.tsi...

mklichee編譯筆記

環境 1 ubuntu16.04 lts x64 2 openjdk 1.7 依賴軟體列表 僅在ubuntu 16.04 x64上測試,其它版本可能不適用 sudo apt get install y git flex bison gperf build essential libncurses5 ...

busybox編譯筆記

2.解壓 tar jxvf busybox 1.20.1.tar.bz 3.配置 1 進入解壓後的檔案busybox 1.20.1 cd busybox 1.20.1 2 進行預設配置 make defconfig 3 個別修改配置 make menuconfig busybox setting b...