1 獲取 Debian 源碼 Ubuntu、Linuxqt 和 debian 系統(tǒng)共用一套源碼,獲取 debian 源碼具體參考“13.1.1 獲取 Linux 源碼” 2 安裝 Debian 源碼依賴包 如果您使用的是搭建好編譯環(huán)境的 Ubuntu16.04 虛擬機鏡像, Debian 源碼依賴包已經安裝好了,不重復安裝。 使用如下命令安裝所需的軟件包: 1、sudo apt-get update 2、安裝 kernel 及 uboot 編譯需要依賴的軟件包 sudo apt-get install git-core gnupg flex bison gperf build-essential zip sudo apt-get install curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev sudo apt-get install xsltproc unzip device-tree-compiler liblz4-tool libxml2-utils 3 編譯 Debian 源碼 13.3.3.1 指定屏幕 打開 linux 的源碼,進入 /home/topeet/rk3399_linux_sdk_v2.0/kernel/arch/arm64/boot/dts/rockchip/itop-3399_linux-lvds.dts 目錄下,打開 itop-3399_linux-lvds.dts 設備樹文件,如下圖所示,默認源碼里面指定屏幕是 hdmi 屏幕,如果我們想源碼里面指定屏幕是其他尺寸,將指定屏幕的宏定義生效就好了。 ![]() ![]() 3.1 整體編譯 使用 cd 命令進入到 rk3399_linux_sdk_v2.0_190805 文件夾。 編譯分兩個命令 ./build.sh BoardConfig.mk ![]() /build.sh debian ![]() 最終在 rocdev 目錄下生成鏡像文件 update.img。update.img 鏡像大約 3G ![]() 3.2 單獨編譯 命令./build.sh -h 查看可選參數 ![]() 單獨編譯 uboot:./build.sh uboot 在 uboot 目錄下生成 u-boot.bin。 單獨編譯 kernel:./build.sh kernel 在 kernel 目錄下生成 boot.img 3.3 定制 Debian 文件系統(tǒng) 在“3.3.1 整體編譯”的章節(jié),編譯的 debian 系統(tǒng)是已將打包好的 debain 文件系統(tǒng)。用戶可以修改定制自己的 debian 文件系統(tǒng)。 注意:定制 debian 文件系統(tǒng),需要確保 Ubuntu 環(huán)境能夠聯網。 3.3.1 安裝軟件依賴包 如果您使用的是搭建好編譯環(huán)境的 Ubuntu16.04 虛擬機鏡像,軟件依賴包已經安裝好了,不必重復安裝。 sudo apt-get install repo git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools sudo apt-get install device-tree-compiler gcc-aarch64-linux-gnu mtools parted libudev-dev sudo apt-get install libusb-1.0-0-dev python-linaro-image-tools linaro-image-tools sudo apt-get install gcc-4.8-multilib-arm-linux-gnueabihf gcc-arm-linux-gnueabihf libssl-dev sudo apt-get install gcc-aarch64-linux-gnu g+conf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sudo apt-get install sed make binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip sudo apt-get install rsync file bc wget libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev sudo apt-get install cvs git mercurial rsync openssh-client subversion asciidoc w3m sudo apt-get install dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo liblz4-tool genext2fs sudo apt-get install binfmt-support qemu-user-static live-build 3.3.2 編譯 Debian rootfs 1 進入debian 目錄:cd rk3399_linux_sdk_v2.0_191209/debian如圖所示: ![]() 2 執(zhí)行命令,編譯 64 位的 debian: RELEASE=stretch TARGET=desktop ARCH=arm64 ./mk-base-debian.sh 3 編譯完成會在 debian/生成:linaro-stretch-alip-xxxxx-1.tar.gz(xxxxx 表示生成時間戳)。如圖: ![]() 4 返回 rk3399_linux_sdk_v2.0_191209/目錄下,修改編譯腳本 build.sh,打開編譯腳本 vim build.sh,修改 206行,將“#”符號去掉。保存退出。 ![]() 5 在 rk3399_linux_sdk_v2.0_191209/目錄下,執(zhí)行命令:./build.sh debian ![]() 6 編譯完成。如圖所示: ![]() 7 編譯完成,會生成 debian/binary 目錄,binary 目錄下為 debian 文件系統(tǒng)文件,可在此目錄下安裝需求進行修改。如圖: ![]() 8 在 binary 目錄下修改完成后,在 rk3399_linux_sdk_v2.0_191209/目錄下,重新執(zhí)行命令:./build.sh debian。會在 rockdev 目錄下生成 update.img 鏡像文件。 ![]() 9 定制的 debian 文件系統(tǒng)已經制作完畢。在 debian 目錄下有制作好的 linaro-rootfs.img。重新編譯不需要修改 debian 鏡像時,可以將編譯腳本 build.sh 中的 206 行注釋掉。再次執(zhí)行命令:./build.sh debian 時。不在重新打包 debian 文件系統(tǒng),直接將之前生成的 linaro-rootfs.img 和 uboot、kerenl 一起打包生成update.img 鏡像。 |