<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

如何使用TinyVision去手動構建Linux 6.1+Debian 12鏡像呢?

全志在線 ? 來源:全志在線 ? 2024-03-15 18:16 ? 次閱讀

SyterKit是一個純裸機框架,可以用于TinyVision或者v851se/v851s/v853等芯片的開發板,SyterKit使用CMake作為構建系統構建,支持多種應用與多種外設驅動。同時SyterKit也具有啟動引導的功能,可以替代U-Boot實現快速啟動。

在開始系統構建前需要準備TinyVision開發板及如下線材,

9c2ac974-e2b4-11ee-a297-92fbcf53809c.jpg

使用40Gbps數據線連接TinyVision開發板和TypeC-SUB調試器,如下圖所示:

9c8ef804-e2b4-11ee-a297-92fbcf53809c.jpg

使用兩條Type-C連接TypeC UART調試器和電腦端,連接完成后即可按照下文步驟構建系統。

從零構建SyterKit

構建 SyterKit 非常簡單,只需要在 Linux 操作系統中安裝配置環境即可編譯。SyterKit 需要的軟件包有:

gcc-arm-none-eabi

CMake

對于常用的 Ubuntu 系統,可以通過如下命令安裝:

sudo apt-get update
sudo apt-get install gcc-arm-none-eabi cmake build-essential -y

然后新建一個文件夾存放編譯的輸出文件,并且進入這個文件夾

mkdir build
cd build

然后運行命令編譯 SyterKit

cmake ..
make
9cba82ee-e2b4-11ee-a297-92fbcf53809c.png ??

編譯后的可執行文件位于 build/app 中,這里包括 SyterKit 的多種APP可供使用。

9d16687a-e2b4-11ee-a297-92fbcf53809c.png

這里我們使用的是 syter_boot 作為啟動引導。進入 syter_boot 文件夾,可以看到這些文件

9da4e348-e2b4-11ee-a297-92fbcf53809c.png

由于 TinyVision 是 TF 卡啟動,所以我們需要用到syter_boot_bin_card.bin

9e1e3af4-e2b4-11ee-a297-92fbcf53809c.png ? ?

編譯Linux-6.1內核

由于 Debian 12 配套的內核是 Linux 6.1 LTS,所以這里我們選擇構建 Linux 6.1 版本內核。

搭建編譯環境

安裝一些必要的安裝包

sudo apt-get update && sudo apt-get install -y gcc-arm-none-eabi gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf build-essential libncurses5-dev zlib1g-dev gawk flex bison quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs unzip lsof

獲取內核源碼

內核源碼托管在 Github 上,可以直接獲取到,這里使用--depth=1 指定 git 深度為 1 加速下載。

git clone http://github.com/YuzukiHD/TinyVision --depth=1

然后進入內核文件夾

cd kernel/linux-6.1

配置內核選項

應用 defconfig

CROSS_COMPILE=arm-linux-gnueabihf- make ARCH=arm tinyvision_defconfig

進入menuconfig配置選項

CROSS_COMPILE=arm-linux-gnueabihf- make ARCH=arm menuconfig

進入General Setup,

選中Control Group Support,

9e4c146a-e2b4-11ee-a297-92fbcf53809c.png9ef7e89e-e2b4-11ee-a297-92fbcf53809c.png

前往File Systems,

找到FUSE support,

9f054278-e2b4-11ee-a297-92fbcf53809c.png

前往File Systems,

找到Inotify support for userspace,

9f19f1aa-e2b4-11ee-a297-92fbcf53809c.png

編譯內核

CROSS_COMPILE=arm-linux-gnueabihf- make ARCH=arm

使用debootstrap

構建debian rootfs

下載安裝依賴環境

sudo apt install debootstrap qemu qemu-user-static qemu-system qemu-utils qemu-system-misc binfmt-support dpkg-cross debian-ports-archive-keyring --no-install-recommends

生成目標鏡像,配置環境,這里我們生成一個 1024M 的鏡像文件用于存放 rootfs

dd if=/dev/zero of=rootfs.img bs=1M count=1024
mkdir rootfs
mkfs.ext4 rootfs.img
sudo mount rootfs.img rootfs

這里我們選擇最新的 debian12 (bookwarm) 作為目標鏡像,使用清華源來構建,輸出到目標目錄 rootfs_data 文件夾中。新版本的 debootstrap 只需要運行一次即可完成兩次 stage 的操作,相較于老版本方便許多。

sudo debootstrap --arch=armhf bookworm rootfs_data https://mirrors.tuna.tsinghua.edu.cn/debian/
9f57e104-e2b4-11ee-a297-92fbcf53809c.png ??

等待構建完成后,使用chroot進入到目錄,這里編寫一個掛載腳本方便掛載使用,新建文件 ch-mount.sh 并寫入以下內容:

9fa6b2f2-e2b4-11ee-a297-92fbcf53809c.png

然后賦予腳本執行的權限,執行掛載,可以看到進入了 debian 的 rootfs

9fce320a-e2b4-11ee-a297-92fbcf53809c.png

配置系統字符集,選擇 en_US 作為默認字符集,選擇一個就可以

export LC_ALL=en_US.UTF-8
apt-get install locales
dpkg-reconfigure locales
a001e686-e2b4-11ee-a297-92fbcf53809c.png ? ? ? a080f0ac-e2b4-11ee-a297-92fbcf53809c.png ?

安裝Linux基礎工具

apt install sudo ssh openssh-server net-tools ethtool wireless-tools network-manager iputils-ping rsyslog alsa-utils bash-completion gnupg busybox kmod wget git curl --no-install-recommends

安裝編譯工具

apt install build-essential

安裝Linux nerd工具

apt install vim nano neofetch

設置本機入口ip地址

cat < /etc/hosts
127.0.0.1    localhost
127.0.1.1    $HOST
::1       localhost ip6-localhost ip6-loopback
ff02::1     ip6-allnodes
ff02::2     ip6-allrouters
EOF

配置網卡

mkdir -p /etc/network
cat >/etc/network/interfaces <
 

配置DNS地址

cat >/etc/resolv.conf <
 

配置分區

cat >/etc/fstab <         
/dev/mmcblk0p1 /boot  vfat  defaults        0    0
/dev/mmcblk0p2 /    ext4  defaults,noatime    0    1
EOF

配置root密碼

passwd

配置主機名

echo TinyVision > /etc/hostname

取消掛載chroot

./ch-mount.sh -u rootfs_data/

拷貝rootfs到鏡像中

sudo cp -raf rootfs_data/* rootfs

取消掛載

sudo umount rootfs

打包固件

完成以上步驟debian rootfs就制作好了。

編譯完成 bootloader,內核,rootfs 后,還需要打包固件成為可以 dd 寫入的固件,這里我們使用 genimage 工具來生成構建。

生成刷機鏡像

編譯內核后,就可以生成sun8i-v851se-tinyvision.dtb和zImage文件,我們把他們拷貝出來。

a0d530d6-e2b4-11ee-a297-92fbcf53809c.png

然后將sun8i-v851se-tinyvision.dtb改名為sunxi.dtb,這個設備樹名稱是定義在SyterKit源碼中的,如果之前修改了SyterKit的源碼需要修改到對應的名稱,SyterKit會去讀取這個設備樹。

然后編寫一個config.txt作為配置文件

[configs]
bootargs=root=/dev/mmcblk0p2 earlyprintk=sunxi-uart,0x02500000 loglevel=2 initcall_debug=0 rootwait console=ttyS0 init=/sbin/init
mac_addr=4a:13f9:79:75
bootdelay=3

安裝genimage作為打包工具。

sudo apt-get install libconfuse-dev #安裝genimage依賴庫
sudo apt-get install genext2fs   # 制作鏡像時genimage將會用到
git clone https://github.com/pengutronix/genimage.git
cd genimage
./autogen.sh            # 配置生成configure
./configure             # 配置生成makefile
make
sudo make install

編譯后運行試一試,這里正常

a106427a-e2b4-11ee-a297-92fbcf53809c.png

編寫 genimage.cfg 作為打包的配置

a14f8b92-e2b4-11ee-a297-92fbcf53809c.png

由于genimage的腳本比較復雜,所以編寫一個genimage.sh作為簡易使用的工具

a17f2c3a-e2b4-11ee-a297-92fbcf53809c.png

準備完成,文件如下所示

a1a0a072-e2b4-11ee-a297-92fbcf53809c.png

運行命令進行打包

chmod 777 genimage.sh
./genimage.sh -c genimage.cfg
a0d530d6-e2b4-11ee-a297-92fbcf53809c.png ?

打包完成,可以找到img文件,使用軟件燒錄固件到TF卡上。

a1f41c48-e2b4-11ee-a297-92fbcf53809c.png

本文內容均轉載自https://www.gloomyghost.com/live/20231220.aspx


審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux系統
    +關注

    關注

    4

    文章

    572

    瀏覽量

    26959
  • 調試器
    +關注

    關注

    1

    文章

    292

    瀏覽量

    23433
  • TF卡
    +關注

    關注

    2

    文章

    60

    瀏覽量

    11939
  • Type-C接口
    +關注

    關注

    1

    文章

    134

    瀏覽量

    20197

原文標題:使用TinyVision手動構建Linux 6.1 + Debian 12鏡像

文章出處:【微信號:gh_79acfa3aa3e3,微信公眾號:全志在線】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    在基于全志V851se的TinyVision手動構建 Linux 6.1 + Debian 12 鏡像

    ,所以我們需要用到 syter_boot_bin_card.bin 編譯 Linux-6.1 內核 由于 Debian 12 配套的內核是 Linux
    發表于 03-18 10:49

    【NanoPi2試用體驗】燒寫Debian鏡像手機電腦VNC登錄(六)

    大體相同。相比手機VNCviewer,電腦端輸入更方便,屏幕更大。 本期討論: 燒寫Debian系統后正式進入Linux學習,NanoPi2板載WiFi模塊,支持手機VNC,有時間拿上它肯德基,點
    發表于 01-07 14:00

    基于debianlinux如何使用4G網上外網?

    基于debianlinux如何使用4G網上外網?????
    發表于 01-25 10:07

    RockChip linuxdebian平臺的使用

    `瑞芯微VS-RK3399板卡Debian 系統支持的雙屏異顯功能本文主要介紹了RockChip linuxdebian 平臺上支持的異顯音頻的使用說明,下面主要介紹雙屏異顯和雙屏異聲.在
    發表于 09-10 09:55

    如何構建一種LINUX下的STM32開發環境

    怎樣將Arduino遷移到linux?如何構建一種LINUX下的STM32開發環境?
    發表于 12-13 06:25

    Debian8系統的jessie系統鏡像該怎樣制作

    Debian8系統的jessie系統鏡像該怎樣制作?有哪些制作流程?
    發表于 03-04 06:32

    如何為 risc-v64 芯片制作 Debian 鏡像

    dd if=/dev/zero of=debian.img bs=1G count=16# 此處鏡像大小為16GBsudo cfdisk debian.img # 可創建兩個分區, 第一個分區
    發表于 08-24 16:42

    昉·星光 2(VisionFive 2)Debian 202308最新鏡像發布!

    | RVspace 202308鏡像下載地址 :https://debian.starfivetech.com/ 新增功能 支持的SBC:昉·星光 2 v1.2A和v1.3B版 基于Linux內核5.15
    發表于 09-08 14:44

    debian安裝教程

    如果你使用Debian軟件包管理器來管理Linux軟件,應該詳細了解Debian軟件倉庫的原理,這有助于使用Linux命令將讓你更容易管理Debia
    的頭像 發表于 02-23 09:14 ?1.1w次閱讀

    為VisionFive星光板上創建Debian系統鏡像

    在RISC-V 星光板VisionFive上創建Debian/Linux系統
    發表于 03-09 20:52 ?687次閱讀
    為VisionFive星光板上創建<b class='flag-5'>Debian</b>系統<b class='flag-5'>鏡像</b>

    鏡像構建Dockerfile的介紹

    Dockerfile 是一個用來構建鏡像的文本文件,文本內容包含了一條條構建鏡像所需的指令和說明。
    的頭像 發表于 09-06 09:36 ?845次閱讀

    Armbian 23.02 \Linux 6.1 發布

    為Arm和RISC-V單板計算機提供映像的兩個最受歡迎的項目發布了新的更新,Armbian 23.02增加了基于Linux 6.1Debian和Ubuntu映像,DietPi 8.14增加了
    的頭像 發表于 03-02 15:44 ?2144次閱讀

    最全教程來啦!在RISC-V星光板上創建Debian系統鏡像

    首先你需要一款專為Linux開發者打造的全球第一代RISC-V星光開發板芯片原廠技術支持!高性價比!極易上手!數量有限!往下看,干貨滿滿~如何在StarFive星光板上創建Debian系統鏡像
    的頭像 發表于 04-22 13:43 ?1646次閱讀
    最全教程來啦!在RISC-V星光板上創建<b class='flag-5'>Debian</b>系統<b class='flag-5'>鏡像</b>

    linux鏡像制作工具

    自定義的虛擬機鏡像。下面將介紹幾種常用的Linux鏡像制作工具,并詳細解釋它們的特點和使用方法。 一、Debian Live-build Debia
    的頭像 發表于 11-23 09:56 ?893次閱讀

    基于Debian的Sparky Linux 7.2的亮點

    Linux kernel 6.1 LTS 提供支持,Sparky Linux 7.2采用 LXQt 1.2.0 和 KDE Plasma 5.27.5,現在提供 ARMHF 和 ARM64
    的頭像 發表于 12-14 10:13 ?275次閱讀
    基于<b class='flag-5'>Debian</b>的Sparky <b class='flag-5'>Linux</b> 7.2的亮點
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>