設(shè)備樹(shù)處理
tf卡上拿到設(shè)備樹(shù)dtb羊异,然后反編譯出來(lái)設(shè)備樹(shù)dts:
linux/scripts/dtc/dtc -I dtb -O dts rk3399-rock-pi-4c.dtb > rk3399-rock-pi-4c.dts
內(nèi)核編譯
sudo apt-get install libncurses-dev flex bison libssl-dev git
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
wget https://releases.linaro.org/components/toolchain/binaries/7.3-2018.05/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
sudo tar xvf gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz ${local_dir}
export ARCH=arm64
export CROSS_COMPILE=${local_dir}/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
make defconfig
make -j6
內(nèi)核/設(shè)備樹(shù)替換
內(nèi)核
替換${ROOT_OF_TF}/boot/Image指向的內(nèi)核鏡像事秀。
設(shè)備樹(shù)
可以修改armbinEnv.txt
中的fdtfile=rockchip/rk3399-rock-pi-4c.dtb
彤断。
PS:uboot這塊沒(méi)有細(xì)看,先沿用原來(lái)的易迹,重心放在內(nèi)核上宰衙。
開(kāi)機(jī)
此時(shí)可以進(jìn)入系統(tǒng)
Unknown command 'kaslrseed' - try 'help'
Moving Image from 0x2080000 to 0x2200000, end=40f0000
## Loading init Ramdisk from Legacy Image at 06000000 ...
Image Name: uInitrd
Image Type: AArch64 Linux RAMDisk Image (gzip compressed)
Data Size: 22787598 Bytes = 21.7 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 01f00000
Booting using the fdt blob at 0x1f00000
Loading Ramdisk to f0950000, end f1f0b60e ... OK
Loading Device Tree to 00000000f08d5000, end 00000000f094ffff ... OK
Starting kernel ...
efi_free_pool: illegal free 0x00000000f0f0d040
efi_free_pool: illegal free 0x00000000f0f0a040
[ 7.265273] systemd[1]: Failed to start Armbian ZRAM config.
Armbian 22.11.1 Jammy ttyS2
rockpi-4c login:
rockpi-4c login:
rockpi-4c login:
rockpi-4c login: root
Password:
Last login: Wed Nov 30 20:21:30 UTC 2022 on ttyS2
有線網(wǎng)卡
此時(shí)沒(méi)有網(wǎng)卡,原因就是沒(méi)驅(qū)動(dòng)(猜的)睹欲。
看設(shè)備樹(shù)供炼,找網(wǎng)卡
259 ethernet@fe300000 {
260 compatible = "rockchip,rk3399-gmac";
261 reg = <0x00 0xfe300000 0x00 0x10000>;
262 interrupts = <0x00 0x0c 0x04 0x00>;
263 interrupt-names = "macirq";
264 clocks = <0x08 0x69 0x08 0x67 0x08 0x68 0x08 0x66 0x08 0x6a 0x08 0xd5 0x08 0x166>;
265 clock-names = "stmmaceth\0mac_clk_rx\0mac_clk_tx\0clk_mac_ref\0clk_mac_refout\0aclk_mac\0pclk_mac";
266 power-domains = <0x1c 0x16>;
267 resets = <0x08 0x89>;
268 reset-names = "stmmaceth";
269 rockchip,grf = <0x1d>;
270 snps,txpbl = <0x04>;
271 status = "okay";
272 assigned-clocks = <0x08 0xa6>;
273 assigned-clock-parents = <0x1e>;
274 clock_in_out = "input";
275 phy-supply = <0x1f>;
276 phy-mode = "rgmii";
277 pinctrl-names = "default";
278 pinctrl-0 = <0x20>;
279 snps,reset-gpio = <0x21 0x0f 0x01>;
280 snps,reset-active-low;
281 snps,reset-delays-us = <0x00 0x2710 0xc350>;
282 tx_delay = <0x28>;
283 rx_delay = <0x11>;
284 phandle = <0xcc>;
285 };
根據(jù)網(wǎng)卡的兼容信息找驅(qū)動(dòng)
grep "rk3399-gmac" driver -rn
匹配到二進(jìn)制文件 ./ethernet/stmicro/stmmac/dwmac-rk.ko
匹配到二進(jìn)制文件 ./ethernet/stmicro/stmmac/dwmac-rk.o
匹配到二進(jìn)制文件 ./ethernet/stmicro/stmmac/dwmac-rk.mod.o
./ethernet/stmicro/stmmac/dwmac-rk.mod.c:44:MODULE_ALIAS("of:N*T*Crockchip,rk3399-gmac");
./ethernet/stmicro/stmmac/dwmac-rk.mod.c:45:MODULE_ALIAS("of:N*T*Crockchip,rk3399-gmacC*");
./ethernet/stmicro/stmmac/dwmac-rk.c:1483: { .compatible = "rockchip,rk3399-gmac", .data = &rk3399_ops },
然后再找Makefile
obj-$(CONFIG_DWMAC_ROCKCHIP) += dwmac-rk.o
得到內(nèi)核配置項(xiàng) CONFIG_DWMAC_ROCKCHIP。
進(jìn)行 menuconfig
窘疮,發(fā)現(xiàn)這個(gè)配置是M
袋哼,改成*
的時(shí)候提示有依賴就是M
,順著提示全部改為*
闸衫,然后make -j8
得到kernel image(boot/arch/arm64/boot/Image)涛贯,拷貝到TF上,啟動(dòng)系統(tǒng)蔚出。
root@rockpi-4c:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
ether 62:65:5b:e8:57:6f txqueuelen 1000 (Ethernet)
RX packets 643 bytes 44267 (44.2 KB)
RX errors 0 dropped 55 overruns 0 frame 0
TX packets 14 bytes 4606 (4.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 31
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@rockpi-4c:~# ifconfig eth0 172.29.157.6 netmask 255.255.254.0
root@rockpi-4c:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.29.157.6 netmask 255.255.254.0 broadcast 172.29.157.255
ether 62:65:5b:e8:57:6f txqueuelen 1000 (Ethernet)
RX packets 1335 bytes 89014 (89.0 KB)
RX errors 0 dropped 128 overruns 0 frame 0
TX packets 20 bytes 6580 (6.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 31
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
root@rockpi-4c:~# ifconfig eth0 172.29.157.7 netmask 255.255.254.0
root@rockpi-4c:~# ping 172.29.157.6
PING 172.29.157.6 (172.29.157.6) 56(84) bytes of data.
64 bytes from 172.29.157.6: icmp_seq=1 ttl=64 time=1.18 ms
64 bytes from 172.29.157.6: icmp_seq=2 ttl=64 time=0.739 ms
64 bytes from 172.29.157.6: icmp_seq=3 ttl=64 time=0.778 ms
64 bytes from 172.29.157.6: icmp_seq=4 ttl=64 time=0.596 ms
網(wǎng)卡驅(qū)動(dòng)起來(lái)了弟翘。
PS:后續(xù)流程差不多,這一步記錄詳細(xì)點(diǎn)身冬。
wifi
目前來(lái)看衅胀,wifi設(shè)備已經(jīng)被初始化岔乔,并且嘗試了與驅(qū)動(dòng)進(jìn)行匹配酥筝;驅(qū)動(dòng)在匹配時(shí)出現(xiàn)了問(wèn)題 —— 目前看起來(lái)像是固件加載出現(xiàn)問(wèn)題。
dmesg信息比對(duì)
5.15內(nèi)核 wifi正常啟動(dòng):
1 [ 10.729431] brcmfmac: F1 signature read @0x18000000=0x15294345
2 [ 10.739167] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
3 [ 10.740580] usbcore: registered new interface driver brcmfmac
4 [ 10.762214] brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.radxa,rockpi4c.bin failed with error -2
5 [ 10.790987] brcmfmac mmc2:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.radxa,rockpi4c.txt failed with error -2
6 [ 10.905414] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
7 [ 10.915353] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/9 wl0: Jun 16 2017 12:38:26 version 7.45.96.2 (66c4e21@sh-git) (r) FWID 01-1813af84
內(nèi)核5.15信息
14 [ 2.034984] usbcore: registered new interface driver brcmfmac
15 [ 2.568174] brcmfmac: F1 signature read @0x18000000=0x15294345
16 [ 2.573287] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
17 [ 2.573608] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.bin failed with error -2
18 [ 2.573617] brcmfmac mmc0:0001:1: Falling back to sysfs fallback for: brcm/brcmfmac43456-sdio.bin
19 [ 5.583245] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50
比較發(fā)現(xiàn)雏门,5.15內(nèi)核有固件加載成功的信息Firmware: BCM4345/9 wl0: Jun 16 2017 12:38:26 version 7.45.96.2 (66c4e21@sh-git) (r) FWID 01-1813af84
嘿歌。
打開(kāi)調(diào)試信息
486 static int __init brcmfmac_module_init(void)
487 {
488 int err;
489
490 pr_debug("******** fucking life ***************");
491 pr_debug("**fucking life: brcmf_msg_level is 0x%x **", brcmf_msg_level);
492 pr_debug("**fucking life: change brcmf_msg_level **");
493
494 brcmf_msg_level |= BRCMF_TRACE_VAL;
495 brcmf_msg_level |= BRCMF_INFO_VAL;
496 brcmf_msg_level |= BRCMF_DATA_VAL;
497 brcmf_msg_level |= BRCMF_CTL_VAL;
498 brcmf_msg_level |= BRCMF_TIMER_VAL;
499 brcmf_msg_level |= BRCMF_HDRS_VAL;
500 brcmf_msg_level |= BRCMF_BYTES_VAL;
501 brcmf_msg_level |= BRCMF_INTR_VAL;
502 brcmf_msg_level |= BRCMF_GLOM_VAL;
503 brcmf_msg_level |= BRCMF_EVENT_VAL;
504 brcmf_msg_level |= BRCMF_BTA_VAL;
505 brcmf_msg_level |= BRCMF_FIL_VAL;
506 brcmf_msg_level |= BRCMF_USB_VAL;
507 brcmf_msg_level |= BRCMF_SCAN_VAL;
508 brcmf_msg_level |= BRCMF_CONN_VAL;
509 brcmf_msg_level |= BRCMF_BCDC_VAL;
510 brcmf_msg_level |= BRCMF_SDIO_VAL;
511 brcmf_msg_level |= BRCMF_MSGBUF_VAL ;
512 brcmf_msg_level |= BRCMF_PCIE_VAL;
513 brcmf_msg_level |= BRCMF_FWCON_VAL;
514
515 pr_debug("**fucking life: new brcmf_msg_level is 0x%x **", brcmf_msg_level);
拿到更為詳細(xì)的日志信息:
1 [ 2.034599] brcmfmac: ******** fucking life ***************
2 [ 2.034606] brcmfmac: **fucking life: brcmf_msg_level is 0x0 **
3 [ 2.034612] brcmfmac: **fucking life: change brcmf_msg_level **
4 [ 2.034618] brcmfmac: **fucking life: new brcmf_msg_level is 0x1ffffe **
5 [ 2.034743] brcmfmac: brcmfmac_module_init No platform data available.
6 [ 2.034790] brcmfmac: brcmf_usb_register Enter
7 [ 2.034886] usbcore: registered new interface driver brcmfmac
8 [ 2.034893] brcmfmac: brcmf_pcie_register Enter
9 [ 2.553430] brcmfmac: brcmf_ops_sdio_probe Enter
10 [ 2.553438] brcmfmac: brcmf_ops_sdio_probe Class=0
11 [ 2.553444] brcmfmac: brcmf_ops_sdio_probe sdio vendor ID: 0x02d0
12 [ 2.553450] brcmfmac: brcmf_ops_sdio_probe sdio device ID: 0xa9bf
13 [ 2.553456] brcmfmac: brcmf_ops_sdio_probe Function#: 1
14 [ 2.553622] brcmfmac: brcmf_ops_sdio_probe Enter
15 [ 2.553629] brcmfmac: brcmf_ops_sdio_probe Class=0
16 [ 2.553636] brcmfmac: brcmf_ops_sdio_probe sdio vendor ID: 0x02d0
17 [ 2.553642] brcmfmac: brcmf_ops_sdio_probe sdio device ID: 0xa9bf
18 [ 2.553648] brcmfmac: brcmf_ops_sdio_probe Function#: 2
19 [ 2.553664] brcmfmac: brcmf_ops_sdio_probe F2 found, calling brcmf_sdiod_probe...
20 [ 2.553714] brcmfmac: brcmf_sdiod_probe set F2 blocksize to 512
21 [ 2.553755] brcmfmac: brcmf_sdio_probe Enter
22 [ 2.554226] brcmfmac: F1 signature read @0x18000000=0x15294345
23 [ 2.554394] brcmfmac: brcmf_chip_recognition found AXI chip: BCM4345/9
24 [ 2.556224] brcmfmac: brcmf_chip_cores_check [1 ] core 0x800:51 base 0x18000000 wrap 0x18100000
25 [ 2.556234] brcmfmac: brcmf_chip_cores_check [2 ] core 0x812:54 base 0x18001000 wrap 0x18101000
26 [ 2.556242] brcmfmac: brcmf_chip_cores_check [3 ] core 0x83e:9 base 0x18002000 wrap 0x18102000
27 [ 2.556251] brcmfmac: brcmf_chip_cores_check [4 ] core 0x83c:14 base 0x18003000 wrap 0x18103000
28 [ 2.556258] brcmfmac: brcmf_chip_cores_check [5 ] core 0x829:21 base 0x18004000 wrap 0x18104000
29 [ 2.556266] brcmfmac: brcmf_chip_cores_check [6 ] core 0x135:0 base 0x00000000 wrap 0x18107000
30 [ 2.556274] brcmfmac: brcmf_chip_cores_check [7 ] core 0x240:0 base 0x00000000 wrap 0x00000000
31 [ 2.556280] brcmfmac: brcmf_chip_set_passive Enter
32 [ 2.557289] brcmfmac: brcmf_chip_get_raminfo RAM: base=0x198000 size=819200 (0xc8000) sr=0 (0x0)
33 [ 2.557359] brcmfmac: brcmf_chip_setup ccrev=51, pmurev=27, pmucaps=0x39d05f1b
34 [ 2.557368] brcmfmac: brcmf_get_module_param Enter, bus=0, chip=17221, rev=9
35 [ 2.557481] brcmfmac: brcmf_sdiod_sgtable_alloc nents=35
36 [ 2.557500] brcmfmac: brcmf_sdio_kso_init Enter
37 [ 2.557523] brcmfmac: brcmf_sdio_drivestrengthinit No SDIO driver strength init needed for chip BCM4345/9 rev 9 pmurev 27
38 [ 2.557932] brcmfmac: brcmf_sdio_probe completed!!
39 [ 2.557945] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
40 [ 2.557955] brcmfmac: brcmf_fw_get_firmwares enter: dev=mmc0:0001:1
41 [ 2.557968] brcmfmac: brcmf_ops_sdio_probe F2 init completed...
42 [ 2.558152] brcmfmac: brcmf_ops_sdio_probe Enter
43 [ 2.558159] brcmfmac: brcmf_ops_sdio_probe Class=2
44 [ 2.558166] brcmfmac: brcmf_ops_sdio_probe sdio vendor ID: 0x02d0
45 [ 2.558172] brcmfmac: brcmf_ops_sdio_probe sdio device ID: 0xa9bf
46 [ 2.558177] brcmfmac: brcmf_ops_sdio_probe Function#: 3
47 [ 2.558634] brcmfmac mmc0:0001:1: Direct firmware load for brcm/brcmfmac43456-sdio.bin failed with error -2
48 [ 2.558645] brcmfmac mmc0:0001:1: Falling back to sysfs fallback for: brcm/brcmfmac43456-sdio.bin
49 [ 3.411816] brcmfmac: brcmf_fw_complete_request firmware brcm/brcmfmac43456-sdio.bin not found
50 [ 3.411845] brcmfmac: brcmf_sdio_firmware_callback Enter: dev=mmc0:0001:1, err=-2
51 [ 3.411858] brcmfmac: brcmf_sdio_firmware_callback failed: dev=mmc0:0001:1, err=-2
52 [ 3.411934] brcmfmac: brcmf_ops_sdio_remove Enter
53 [ 3.411946] brcmfmac: brcmf_ops_sdio_remove sdio vendor ID: 0x02d0
54 [ 3.411958] brcmfmac: brcmf_ops_sdio_remove sdio device ID: 0xa9bf
55 [ 3.411970] brcmfmac: brcmf_ops_sdio_remove Function: 2
我擦,我發(fā)現(xiàn)這么處理這個(gè)問(wèn)題不一定能夠解決茁影,我應(yīng)該嘗試把5.15內(nèi)核中這個(gè)wifi的驅(qū)動(dòng)拿過(guò)來(lái)宙帝,放在5.10上去用,然后根據(jù)效果再?zèng)Q定如何進(jìn)行下一步募闲。
root@rockpi-4c:/sys/bus/mmc/devices/mmc0:0001/mmc0:0001:1# ls -l
total 0
-r--r--r-- 1 root root 4096 Dec 1 10:33 class
--w------- 1 root root 4096 Dec 1 10:33 coredump
-r--r--r-- 1 root root 4096 Dec 1 10:33 device
lrwxrwxrwx 1 root root 0 Dec 1 10:32 driver -> ../../../../../../../bus/sdio/drivers/brcmfmac
drwxr-xr-x 3 root root 0 Dec 1 10:32 ieee80211
-r--r--r-- 1 root root 4096 Dec 1 10:33 info1
-r--r--r-- 1 root root 4096 Dec 1 10:33 info2
-r--r--r-- 1 root root 4096 Dec 1 10:33 info3
-r--r--r-- 1 root root 4096 Dec 1 10:33 info4
-r--r--r-- 1 root root 4096 Dec 1 10:33 modalias
drwxr-xr-x 3 root root 0 Dec 1 10:32 net
lrwxrwxrwx 1 root root 0 Dec 1 10:33 of_node -> ../../../../../../../firmware/devicetree/base/mmc@fe310000/wifi@1
drwxr-xr-x 2 root root 0 Dec 1 10:32 power
-r--r--r-- 1 root root 4096 Dec 1 10:33 revision
lrwxrwxrwx 1 root root 0 Jan 18 2013 subsystem -> ../../../../../../../bus/sdio
-rw-r--r-- 1 root root 4096 Jan 18 2013 uevent
-r--r--r-- 1 root root 4096 Dec 1 10:33 vendor
驅(qū)動(dòng)信息步脓。
硬解驅(qū)動(dòng)bug
brcmf_ops_sdio_probe ------> brcmf_sdiod_probe ----------> brcmf_sdio_probe -----------> brcmf_fw_get_firmwares --------> request_firmware_nowait ----------------> brcmf_fw_request_done -----------> brcmf_fw_request_firmware -------------> brcmf_sdio_firmware_callback
問(wèn)題解決,按照上面的流程分析代碼浩螺,發(fā)現(xiàn)邏輯貌似沒(méi)有問(wèn)題靴患;做了若干嘗試發(fā)現(xiàn)有可能是加載固件的時(shí)機(jī)太早,此時(shí)文件系統(tǒng)還沒(méi)準(zhǔn)備好要出,嘗試:
673 #include <linux/delay.h>
674
675 int brcmf_fw_get_firmwares(struct device *dev, struct brcmf_fw_request *req,
676 | void (*fw_cb)(struct device *dev, int err,
677 |struct brcmf_fw_request *req))
678 {
679 struct brcmf_fw_item *first = &req->items[0];
680 struct brcmf_fw *fwctx;
681 int ret;
682 int heartbeat = 0;
683
684 brcmf_dbg(TRACE, "enter: dev=%s\n", dev_name(dev));
685 if (!fw_cb)
686 return -EINVAL;
687
688 if (!brcmf_fw_request_is_valid(req))
689 return -EINVAL;
690
691 fwctx = kzalloc(sizeof(*fwctx), GFP_KERNEL);
692 if (!fwctx)
693 return -ENOMEM;
694
695 fwctx->dev = dev;
696 fwctx->req = req;
697 fwctx->done = fw_cb;
698
699 brcmf_dbg(TRACE, "sleep to wati for fs online");
700 while(heartbeat++ < 10)
701 {
702 | msleep(1000);
703 | brcmf_dbg(TRACE, "heart beating ..........");
704 }
705 brcmf_dbg(TRACE, "now wake up");
706
707 ret = request_firmware_nowait(THIS_MODULE, true, first->path,
708 | | fwctx->dev, GFP_KERNEL, fwctx,
709 | | brcmf_fw_request_done);
710 if (ret < 0)
711 brcmf_fw_request_done(NULL, fwctx);
712
713 return 0;
714 }
加載固件之前鸳君,等10秒(其實(shí)不用這么久),效果:
Begin: Loading essential drivers ... done.
Begin: Running /scripts/init-premount ... [ 6.968892] systemd[1]: Failed to start Armbian ZRAM config.
[ 7.839553] systemd[1]: Failed to start Armbian ZRAM config.
[ 14.976177] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43456-sdio for chip BCM4345/9
[ 14.976935] brcmfmac: brcmf_fw_alloc_request: fwreq-items[0].path = brcm/brcmfmac43456-sdio.clm_blob
[ 15.012302] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM4345/9 wl0: Jun 16 2017 12:38:26 version 7.45.96.2 (66c4e21@sh-git) (r) FWID 01-1813af84
Armbian 22.11.1 Jammy ttyS2
固件成功加載患蹂。
iw dev wlan0 scan ssid |grep -
SSID: ChinaNet-DC4T
SSID: asus
SSID: kylinos
SSID: kylinos
SSID: asus
SSID: 123456
SSID: kylinos
SSID: Kylin_11F
SSID: huanghexinchan
SSID: huanghe_5G
SSID: kylinos
SSID: TP-LINK_944CB8
SSID: huanghexinchan
SSID:
* SSID List
* UTF-8 SSID
SSID: hw_manage_f200
SSID: kylinos
SSID: \x00\x00\x00\x00\x00\x00\x00\x00
SSID: FAST_2.4G_E16F
SSID: \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00
SSID: Kylin_11F
SSID:
* SSID List
* UTF-8 SSID
SSID: kylinos
SSID: EZVIZ_F77790454
SSID: huanghexinchan
SSID: 360\xe8\xa1\x8c\xe8\xbd\xa6\xe8\xae\xb0\xe5\xbd\x95\xe4\xbb\xaa-0867
SSID: kylinos
SSID: kylinos
SSID: HONOR V30
SSID: Kylin_11F
無(wú)線網(wǎng)卡可以操作或颊。
Bluetooth
[ 2.635076] Bluetooth: hci0: BCM: chip id 130
[ 2.637480] Bluetooth: hci0: BCM: features 0x0f
[ 2.660672] Bluetooth: hci0: BCM4345C5
[ 2.660685] Bluetooth: hci0: BCM4345C5 (003.006.006) build 0000
[ 2.663316] Bluetooth: hci0: BCM: firmware Patch file not found, tried:
[ 2.663329] Bluetooth: hci0: BCM: 'brcm/BCM4345C5.hcd'
[ 2.663334] Bluetooth: hci0: BCM: 'brcm/BCM.hcd'
[ 2.860103] cfg80211: failed to load regulatory.db
內(nèi)核信息串口輸出
[ 1.863048] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[ 1.865744] ff180000.serial: ttyS0 at MMIO 0xff180000 (irq = 42, base_baud = 1500000) is a 16550A
[ 1.865898] serial serial0: tty port ttyS0 registered
[ 1.866586] ff1a0000.serial: ttyS2 at MMIO 0xff1a0000 (irq = 43, base_baud = 1500000) is a 16550A
[ 1.866851] printk: console [ttyS2] enabled
但是內(nèi)核輸出還是看不見(jiàn)砸紊。
pcie
[ 1.828517] rockchip-pcie f8000000.pcie: host bridge /pcie@f8000000 ranges:
[ 1.828555] rockchip-pcie f8000000.pcie: MEM 0x00fa000000..0x00fbdfffff -> 0x00fa000000
[ 1.828573] rockchip-pcie f8000000.pcie: IO 0x00fbe00000..0x00fbefffff -> 0x00fbe00000
[ 2.306158] rockchip-pcie f8000000.pcie: host bridge /pcie@f8000000 ranges:
[ 2.306175] rockchip-pcie f8000000.pcie: MEM 0x00fa000000..0x00fbdfffff -> 0x00fa000000
[ 2.306182] rockchip-pcie f8000000.pcie: IO 0x00fbe00000..0x00fbefffff -> 0x00fbe00000
[ 2.308572] rockchip-pcie f8000000.pcie: host bridge /pcie@f8000000 ranges:
[ 2.308590] rockchip-pcie f8000000.pcie: MEM 0x00fa000000..0x00fbdfffff -> 0x00fa000000
[ 2.308597] rockchip-pcie f8000000.pcie: IO 0x00fbe00000..0x00fbefffff -> 0x00fbe00000
[ 2.309449] rockchip-pcie f8000000.pcie: host bridge /pcie@f8000000 ranges:
[ 2.309468] rockchip-pcie f8000000.pcie: MEM 0x00fa000000..0x00fbdfffff -> 0x00fa000000
[ 2.309475] rockchip-pcie f8000000.pcie: IO 0x00fbe00000..0x00fbefffff -> 0x00fbe00000
hdmi輸出
2251 hdmi@ff940000 {
2252 compatible = "rockchip,rk3399-dw-hdmi";
2253 reg = <0x00 0xff940000 0x00 0x20000>;
2254 interrupts = <0x00 0x17 0x04 0x00>;
2255 clocks = <0x08 0x174 0x08 0x71 0x08 0x70 0x08 0x16f 0x08 0x07>;
2256 clock-names = "iahb\0isfr\0cec\0grf\0vpll";
2257 power-domains = <0x1c 0x15>;
2258 reg-io-width = <0x04>;
2259 rockchip,grf = <0x1d>;
2260 #sound-dai-cells = <0x00>;
2261 status = "okay";
2262 ddc-i2c-bus = <0xad>;
2263 pinctrl-names = "default";
2264 pinctrl-0 = <0xae>;
2265 phandle = <0xac>;
2266
2267 ports {
2268
2269 port {
2270 #address-cells = <0x01>;
2271 #size-cells = <0x00>;
2272 phandle = <0x11e>;
2273
2274 endpoint@0 {
2275 reg = <0x00>;
2276 remote-endpoint = <0xaf>;
2277 phandle = <0xa6>;
2278 };
2279
2280 endpoint@1 {
2281 reg = <0x01>;
2282 remote-endpoint = <0xb0>;
2283 phandle = <0xa0>;
2284 };
2285 };
2286 };
2287 };
配置項(xiàng)
6 rockchipdrm-y := rockchip_drm_drv.o rockchip_drm_fb.o \
7 rockchip_drm_gem.o rockchip_drm_vop.o rockchip_vop_reg.o
8 rockchipdrm-$(CONFIG_DRM_FBDEV_EMULATION) += rockchip_drm_fbdev.o
9
10 rockchipdrm-$(CONFIG_ROCKCHIP_ANALOGIX_DP) += analogix_dp-rockchip.o
11 rockchipdrm-$(CONFIG_ROCKCHIP_CDN_DP) += cdn-dp-core.o cdn-dp-reg.o
12 rockchipdrm-$(CONFIG_ROCKCHIP_DW_HDMI) += dw_hdmi-rockchip.o
13 rockchipdrm-$(CONFIG_ROCKCHIP_DW_MIPI_DSI) += dw-mipi-dsi-rockchip.o
14 rockchipdrm-$(CONFIG_ROCKCHIP_INNO_HDMI) += inno_hdmi.o
15 rockchipdrm-$(CONFIG_ROCKCHIP_LVDS) += rockchip_lvds.o
16 rockchipdrm-$(CONFIG_ROCKCHIP_RGB) += rockchip_rgb.o
17 rockchipdrm-$(CONFIG_ROCKCHIP_RK3066_HDMI) += rk3066_hdmi.o
18
19 obj-$(CONFIG_DRM_ROCKCHIP) += rockchipdrm.o
簡(jiǎn)單處理,這些配置項(xiàng)全部改為*
囱挑。
效果
音頻
設(shè)備樹(shù):
2234 hdmi-sound {
2235 compatible = "simple-audio-card";
2236 simple-audio-card,format = "i2s";
2237 simple-audio-card,mclk-fs = <0x100>;
2238 simple-audio-card,name = "hdmi-sound";
2239 status = "okay";
2240 phandle = <0x11d>;
2241
2242 simple-audio-card,cpu {
2243 sound-dai = <0xab>;
2244 };
2245
2246 simple-audio-card,codec {
2247 sound-dai = <0xac>;
2248 };
2249 };
3408 sound {
3409 compatible = "audio-graph-card";
3410 label = "Analog";
3411 dais = <0xc3>;
3412 };
配置項(xiàng):
6 obj-$(CONFIG_SND_SIMPLE_CARD_UTILS) += snd-soc-simple-card-utils.o
7 obj-$(CONFIG_SND_SIMPLE_CARD) += snd-soc-simple-card.o
8 obj-$(CONFIG_SND_AUDIO_GRAPH_CARD) += snd-soc-audio-graph-card.o
簡(jiǎn)單處理醉顽,全加上。
效果目前沒(méi)有驗(yàn)證平挑,感覺(jué)問(wèn)題不大徽鼎。