因为win11 使用Ubuntu18.04时WIFI一直检测不到驱动,升级内核版本也无济于事,所以改用Ubuntu22.04(在使用时也出现了大大小小的问题),特写此篇文章记录一下
1.下载代码
1.mkdir BSP 新建文件夹存放代码
2.git clone https://e.coding.net/codebug8/repo.git 从git拉取代码
3.repo/repo init -u https://gitee.com/weidongshan/manifests.git -b linux-sdk -m
imx6ull/100ask_imx6ull_linux4.9.88_release.xml --no-repo-verify
初始化repo仓库
repo init :这个部分只是开始初始化一个repo仓库
-u https://gitee.com/weidongshan/manifests.git:这个部分指定了repo仓库的URL
-b linux-sdk:这个部分指定的要初始化的仓库的分支,即linux-sdk
-m imx6ull/100ask_imx6ull_linux4.9.88_release.xml: 这个部分指定了要使用的mainfest文件
--no-repo-verify: 这个部分表示不对repo仓库进行验证。
综上所述,这个指令的作用是通过指定URL、分支、manifest文件等信息来初始化一个repo仓库,并且在初始
化过程中不对仓库进行验证。
4.repo/repo sync -j4
2.编译bootloader
指令
cd Uboot-2018.03 跳转目录
1.make disclean 清除之前编译生成的所有文件(是清除最彻底的一个指令)
2.make mx6ull_14x14_evk_defconfig 编译生成配置文件
3.make 全部编译
在执行时会出现一些问题
1.error: HOSTLD scripts/dtc/dtc
/usr/bin/ld: scripts/dtc/dtc-parser.tab.o:(.bss+0x10): multiple definition of `yylloc'; scripts/dtc/dtc-lexer.lex.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [scripts/Makefile.host:108: scripts/dtc/dtc] Error 1
make[1]: *** [scripts/Makefile.build:425: scripts/dtc] Error 2
make: *** [Makefile:491: scripts] Error 2
这是因为版本过高导致,,输入指令vimscripts/dtc/dtc-lexer.lex.c 在YYLYTYPE yylloc;前面增加extern
3.内核编译
cd Linux-4.9.88
1.make mrproper
2.make 100ask_imx6ull_defconfig
3.make zLmage-j8
4.make dtbs
5.make ARCH=arm INSTALL_MOD_PATH=/home/martin/martinworkspace/nfs_rootfs modules_install
cp arch/arm/boot/zImage /home/martinworkspace/nfs_rootfs/
cp arch/arm/boot/dts/100ask_imx6ull-14x14.dtb /home/martin/martinworkspace/nfs_rootfs/
在执行时会出现一些问题
1.error: HOSTLD scripts/dtc/dtc
/usr/bin/ld: scripts/dtc/dtc-parser.ta