当前位置: 首页 > wzjs >正文

销售类网站开发新浪短链接生成

销售类网站开发,新浪短链接生成,成都网站建设询q479185700上快,大兴建设网站公司文章目录 1、环境介绍2、前言3、debian目录结构3.1、脚本调用顺序 4、编译debian4.1、构建debian编译所需的环境4.2、编译debian4.3、打包 5、系统启动6、debian适配6.1、新增板级配置单6.2、USB6.3、Wi-Fi / BT6.4、屏幕旋转6.5、触摸旋转6.6、时钟 7、测试8、总结 1、环境介绍…

文章目录

  • 1、环境介绍
  • 2、前言
  • 3、debian目录结构
    • 3.1、脚本调用顺序
  • 4、编译debian
    • 4.1、构建debian编译所需的环境
    • 4.2、编译debian
    • 4.3、打包
  • 5、系统启动
  • 6、debian适配
    • 6.1、新增板级配置单
    • 6.2、USB
    • 6.3、Wi-Fi / BT
    • 6.4、屏幕旋转
    • 6.5、触摸旋转
    • 6.6、时钟
  • 7、测试
  • 8、总结

1、环境介绍

硬件:飞凌ok3568-c开发板

软件:原厂rk356x sdk

2、前言

rk不仅支持buildroot,还支持debian。所以本文将记录适配debian的过程。

3、debian目录结构

在sdk里,有一个debian目录,主要存放用于构建debian系统所需的文件:

cohen@ubuntu:~/platform/rk356x-sdk/debian$ tree -L 1
.
├── mk-base-debian.sh
├── mk-image.sh
├── mk-iso-debian.sh
├── mk-rootfs-bullseye.sh
├── mk-rootfs.sh
├── overlay
├── overlay-debug
├── overlay-firmware
├── packages
├── packages-patches
├── post-build.sh
├── readme.md
├── scripts
└── ubuntu-build-service

mk-base-debian.sh:配置编译基础系统镜像,最后生成一个linaro-bullseye-alip-20250421-1.tar.gz。

mk-image.sh:用于生成最终的系统镜像文件。

mk-iso-debian.sh:用于生成 Debian 的 ISO 镜像文件。

mk-rootfs-bullseye.sh:解压linaro-bullseye-alip-20250421-1.tar.gz,完善构建rootfs。

mk-rootfs.sh:实际也是调用mk-rootfs-bullseye.sh。

overlay:包含一些覆盖文件,用于在构建过程中覆盖或添加到目标文件系统中。

overlay-debug:包含一些覆盖文件,用于在构建过程中覆盖或添加到目标文件系统中。

overlay-firmware:包含一些覆盖文件,用于在构建过程中覆盖或添加到目标文件系统中。

packages:包含预编译的 Debian 包,这些包在构建过程中会被安装到目标文件系统中。

packages-patches:包含用于修补软件包的补丁文件。

post-build.sh:在构建完成后执行的脚本,用于进行一些清理或额外的配置。

readme.md:使用说明。

scripts:包含一些辅助脚本,用于执行特定任务。

ubuntu-build-service:包含用于构建 Ubuntu 系统的配置和服务文件。

3.1、脚本调用顺序

<sdk>/common/build-hooks/30-rootfs.sh脚本的build_debian()函数作为起始来看的话,脚本的调用顺序如下:

30-rootfs.sh check-debian.sh				# 检查当前环境是否满足构建 Debian Live 镜像的依赖条件mk-base-debian.sh 		# 配置编译基础系统镜像,最后生成一个linaro-bullseye-alip-20250421-1.tar.gzmk-rootfs-bullseye.sh # 解压linaro-bullseye-alip-20250421-1.tar.gz,完善rootfsmk-image.sh 					# 生成最终的系统镜像文件./post-build.sh../device/rockchip/common/post-build.sh

4、编译debian

4.1、构建debian编译所需的环境

cohen@ubuntu:~/platform/rk356x-sdk/$ sudo dpkg -i debian/ubuntu-build-service/packages/*
cohen@ubuntu:~/platform/rk356x-sdk/$ sudo apt-get install -f

4.2、编译debian

cohen@ubuntu:~/platform/rk356x-sdk/$ ./build.sh debian

4.3、打包

编译成功后,执行如下命令打包成烧录镜像:

cohen@ubuntu:~/platform/rk356x-sdk/$ ./build.sh firmware

5、系统启动

将新的镜像烧录到板卡,可以看到系统正常启动:

6、debian适配

以下只是列出在适配过程中需要完善的项。对于片上外设来说,之前buildroot适配的大部分东西是可以直接用的。对于芯片自带的硬件,rk提供的debian也早已做好了适配。

6.1、新增板级配置单

RK SDK 提供了多种版本的 Debian 系统,适用于不同的硬件平台和需求。这些版本可以根据功能和架构分为以下几类:

功能版本:

  • base:基础版本(也带桌面了)。
  • gnome:桌面版本,使用 GNOME 桌面环境。
  • xfce:桌面版本,使用 XFCE 桌面环境。
  • lxde:桌面版本,使用 LXDE 桌面环境。

架构版本:

  • arm64:适用于 64 位 ARM 架构的处理器,如 RK3568、RK3588 等。
  • armhf:适用于 32 位 ARM 架构的处理器,支持硬件浮点运算。

所以这里为这四种不同功能版本的debian系统分别创建一个配置单,结果如下图:

其实也没做什么,这4个不同的配置单只是用来选择配置编译哪一个debian基础系统镜像,以forlinx_rk3568_c_debian_desktop_defconfigforlinx_rk3568_c_debian_base_defconfig为例:

这几个宏变量来自sdk menuconfig,需自行在/common/configs/下定义。如:

然后根据自己的需求修改debian相关的构建脚本即可。这里列出我的修改:

mk-rootfs:

mk-base-debian.sh:

mk-rootfs-bullseye.sh:

6.2、USB

鼠标键盘正常。

插入U盘后,可以正常识别,但没有自动挂载。这里添加一个udev规则文件来实现自动挂载和卸载u盘。这里折腾了两个晚上,udev规则文件调用的挂载脚本中的挂载命令要使用systemd-mount,不能使用mount。

最终的udev规则文件/etc/udev/rules.d/99-usb-mount.rules如下:

ACTION=="add",KERNEL=="sd*",SUBSYSTEM=="block",ENV{ID_FS_TYPE}!="",ENV{label_uuid_name}="%k", RUN+="/usr/local/bin/auto-mount.sh add /dev/%k %E{label_uuid_name}"
ACTION=="remove",KERNEL=="sd*",SUBSYSTEM=="block",ENV{ID_FS_TYPE}!="",ENV{label_uuid_name}="%k", RUN+="/usr/local/bin/auto-mount.sh remove /dev/%k %E{label_uuid_name}

挂载卸载脚本/usr/local/bin/auto-mount.sh如下:

#!/bin/sh
{
echo "=======$(date)======="
echo "Action: $1 | Device: $2 | MINOR: $3"if [ $# -ne 3 ]; thenexit 1
fiexport XDG_RUNTIME_DIR=/run/user/0MAJOR_PATH=/media
MINOR_PATH=$3if [[ ! -b "$2" && "$1" == "add" ]]; thenecho "ERROR: Device $2 not found after checks!"exit 2
fi
if [ "$1" = "add" ]; thenmkdir -p $MAJOR_PATH/$MINOR_PATH/usr/bin/systemd-mount -o relatime,sync --no-block --collect $2 $MAJOR_PATH/$MINOR_PATH 2>&1if [ $? -ne 0 ]; thenrmdir $MAJOR_PATH/$MINOR_PATHfi
#	udisksctl mount -b "$2" --no-user-interaction 2>&1
elif [ "$1" = "remove" ]; thenif [ -d $MAJOR_PATH/$MINOR_PATH ]; then/usr/bin/systemd-mount --umount $MAJOR_PATH/$MINOR_PATHrmdir $MAJOR_PATH/$MINOR_PATHfi
#	udisksctl unmount -b "$2" 2>&1
fi
echo "Exit Code: $?"
} >> /tmp/mount.log 2>&1

参考文章:https://blog.csdn.net/m0_69014205/article/details/147076378?spm=1001.2014.3001.5502

6.3、Wi-Fi / BT

无线wifi/bt模块用的海华awcm358sm。实测debian系统启动后没有自动加载驱动。这里需要把内核模块安装到debian rootfs,然后设置开启自动加载驱动。

  1. 将内核模块安装到debian rootfs:
run_command $KMAKE modules_install INSTALL_MOD_PATH=$RK_SDK_DIR/debian/overlay/usr

  1. 在debian系统中,/etc/modules-load.d/是一个用于配置内核模块在启动时自动加载的目录。在该目录下创建一个modules.conf,并填写开机启动时要加载的驱动。:

/lib/systemd/systemd-modules-load.service服务在系统启动时会读取modules-load.d下的所有配置文件,并根据文件中的列表加载指定的内核模块。

这里可以稍微介绍一下,是如何找到moal.ko的。实际就像平时执行modprobe xx.ko命令时,会先在/lib/modules/$(uname -r)/目录下找到modules.alias.bin和module.dep.bin。里面记录驱动的依赖关系和存储位置。如下是module.dep的内容(module.dep.bin是module.dep的二进制文件):

6.4、屏幕旋转

目前适配所使用debian的桌面环境为xfce,使用的是X11显示架构。对于屏幕旋转,修改/etc/X11/xorg.conf.d/20-modesetting.conf

可选值:normal、left、right、inverted

6.5、触摸旋转

屏幕旋转后,鼠标是可以正常使用的。但触摸的旋转还需要修改:

sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/
sudo vi /etc/X11/xorg.conf.d/40-libinput.conf
Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"	# 180度旋转

6.6、时钟

现在的时间比北京时间少8小时。需要设置时区。直接修改配置脚本:

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

关于适配先到此为止,后续有其它内容再补充。

7、测试

进入系统时的桌面:

网络:

小破站播放视频:

蓝牙:

目前使用笔记本电脑配对测试不成功。到时候使用安卓手机再试试。

8、总结

嵌入式Linux学习交流群:424571391
本人也是第一次接触发行版linux。可能对于一些测试指标有所忽略,欢迎指点。另一方面是rk对debian的支持已经很完善了,规避了很多问题。后面会继续移植ubuntu,更全面的体验发行版linux的移植过程。


文章转载自:

http://NOwbgfRI.bpdcw.cn
http://6RDTtD6f.bpdcw.cn
http://3d7mjE93.bpdcw.cn
http://R3XSziMJ.bpdcw.cn
http://0qBNflN2.bpdcw.cn
http://BZUrb4RV.bpdcw.cn
http://zCcPXSfq.bpdcw.cn
http://qP8pVzX5.bpdcw.cn
http://VUgKLUAs.bpdcw.cn
http://zplKBJTA.bpdcw.cn
http://DuTNTxdW.bpdcw.cn
http://2f2mTRPM.bpdcw.cn
http://PR3ITjGB.bpdcw.cn
http://dC004wav.bpdcw.cn
http://2qbfi4eS.bpdcw.cn
http://UTKccfKd.bpdcw.cn
http://X83qLqoj.bpdcw.cn
http://Ryd8oZeX.bpdcw.cn
http://HDrYkIMn.bpdcw.cn
http://tm4izus7.bpdcw.cn
http://mW6RoAaI.bpdcw.cn
http://zKqnWWQW.bpdcw.cn
http://SnRrK00s.bpdcw.cn
http://MwY1hp3Q.bpdcw.cn
http://N4u2SlO9.bpdcw.cn
http://S91Lju2m.bpdcw.cn
http://lSvf4iml.bpdcw.cn
http://nQlGf8Ed.bpdcw.cn
http://Vn9Geavu.bpdcw.cn
http://Lw6nUgUn.bpdcw.cn
http://www.dtcms.com/wzjs/596733.html

相关文章:

  • 学校网站建设材料wordpress自动还原
  • 在哪个网站找地理题做商务网站建设项目的技术可行性
  • 海城市建设局网站网站建设维保免费内容
  • 高明区做网站商标设计网排行
  • 网站建设报价wordpress如何将文章链接
  • o2o的网站有哪些糖果网站建设策划书模板
  • 织梦绿色企业网站模板免费网页制作平台
  • 网站建设必会的软件多城市分站站群cms
  • 外贸的订单在哪个网站找合肥网站建设价格
  • 网站开发采购合同模板下载实实通信的视频网站怎么做
  • 哪个公司可以做网站常德网站开发服务
  • 已经有网站了 怎么做app网站技术支持是什么
  • 网站设计排版怎么做wordpress浮动关注我们
  • 网站建设具备哪些技术人员网站转app免费
  • 建模网站wordpress 改地址
  • 网站免费网站app郑州建设网站公司
  • 佛山市企业网站建设平台界首网站优化公司
  • 怎么用flash做游戏下载网站软件工程4大证书
  • 工信部网站备案查询 验证码互联网产品推广
  • 怎么将dw做的网站导出wordpress getpagenumlink
  • 房山重庆网站建设电商开放平台
  • 怎么做社交网站引流到亚马逊营销网络用语是什么意思
  • 好的网站页面wordpress盗版模板
  • 厦门建设局网站中标结果查询足球比赛直播app下载
  • oracle 网站开发网络规划设计师报名费
  • 西安 网站建设企业自建网站营销
  • 哪些网站做的好处和坏处无锡网站建设哪家做得比较好
  • 佛山网站建设 奇锐科技如何做淘宝的站外网站推广
  • 普通网站温州推广团队
  • 建设银行流水账网站查询wordpress语音插件