欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 口号 > linux移植修改串口号

linux移植修改串口号

时间:2018-07-16 08:04

求助 linux下移植蓝牙的问题

回复 1# zhing21 驱动肯定是要自己开发的,总线可以使用Linux自带的,可能需要做相应的修改。

linux下怎么检查串口号

查看是用,可以对串口发送数据比如对com1口,echo lyjie126 > \\\/dev\\\/ttyS0查看串口名用 ls -l \\\/dev\\\/ttyS* 一般情况下串口的名部在dev下面,如果你没有外插串口卡的话默认是dev下的ttyS* ,一般ttyS0对应com1,ttyS1对应com2,当然也不一定是必然的;查看串口驱动:cat \\\/proc\\\/tty\\\/drivers\\\/serial查看串口设备:dmesg | grep ttyS*

如何将需要安装到linux的程序移植到arm中

在移植过程中,需要自己写的大段代码并不多,甚至说没有自己写的也不过分。

大部分都是修改,因为生产ARM芯片的厂家非常多,uboot和Linux其实做的已经很好了,对很多优秀常用的平台都进行了支持。

但是在嵌入式设备中,我们有时候需要自己定制平台自己选cpu自己选外围设备,这样uboot和Linux中提供的各种驱动和配置我们可能就不用上了。

这个时候,我们就可能要自己动手去修改uboot和Linux源码了,主要涉及的大部分都是驱动代码。

修改这些代码的基础,除了要对C语言有一定的了解而且对外围硬件的工作原理也要有一定的了解,这些东西可以通过阅读硬件的spec来学习。

uboot中你可以选择一个接近你用的平台的方案,通过修改它来得到你自己的uboot。

一般要修改的有串口,电源管理、部分时钟、网卡驱动,nand和ddr的驱动有时可能还要用到lcd,一般在uboot启动过程中其他设备用不到,所以这时候可以不驱动。

kernel中修改的就多了,首先为保证系统能正常启动。

选择接近的方案然后要确定uboot中设置的那些设备还能正常工作,然后在针对你的平台的设计去一步步完成剩下设备的驱动,以保证系统能正常运行。

如何手动移植linux系统到迅为4412

Android 和 Linux 是两码事,Android 系统是基于 Linux 内核的。

我们编译的 Android 源码是 Android 系统本身的源码,而内核是指通过原生 Linux 源码移植过来的内核源码,所以它们需要我们分别编译。

并且 Android 系统的版本号和 Linux 源码的版本号是没有严格意义上的对应关系的,只要某个版本的 Linux 内核能支撑起某个版本的 Android 系统,那么它们就可以组合使用。

内核就不多说了,它在 Android 中的作用跟在其它 Linux 发行版中的作用没什么区别,我们简单介绍一下 Android 文件系统的结构。

Linux 系统的启动过程:bootloader(GRUB)---->zImage(Kernel)---->ramdisk(临时根,在内存中)---->rootfs(永久根,在磁盘上)Android 的启动过程:bootloader(厂商提供)---->zImage(Kernel)---->ramdisk(永久根,为了提速所以放在内存中)那么 Android 的 ramdisk 中存放了什么呢,通常分为四个分区:[fat32] 内置存储空间。

fat32 不是名字,是分区格式。

[system] 系统启动时挂载到system目录[data] 系统启动时挂载到data目录[cache] 相当于swap分区其中 system 分区和 data 分区是 Android 系统中非常重要的两个分区,我们简单介绍一下它们常用的作用。

system:  [app] xxx.apk | 系统自带的软件安装目录,普通用户无权卸载。

像电话本、拨号器、短信等等系统应用都安装在这里。

还有许多定制版手机被无良厂商预装了各种无法被卸载的垃圾程序都放在这里。

这里的程序都是用 Java 编写的。

  [framework] xxx.jar | 存放用 Java 编写的库  [bin] xxx | 存放本地程序,一般都是由 C\\\/C++\\\/asm 编写  [lib] xxx.so | 存放用 C\\\/C++\\\/asm 编写的库data:  这个目录在内存中,是android系统的家目录。

系统配置文件都在这个分区中,恢复出厂设置通常就是格式化该分区。

好了,android 的文件系统就先简单介绍到这了,下面开始今天的正题吧,编译 Linux 内核源码。

我手上用的是 Linux 3.5 的内核,并且已经被大神们移植过了,所以我就不再执行 make menuconfig 了,而是直接用大神给做好的配置文件进行编译了。

自己还没有研究过怎么移植内核,上次折腾到半夜还失败了,所以这次先老老实实的拿大神移植好的内核做实验,等过段时间研究好了内核移植再拿出来分享。

既然有了大神移植好的内核,那么编译起来也就简单多了,过程当中也没有遇到什么坑。

[yuhuashi@local android]$ tar xzf linux-3.5-20140422.tgz[yuhuashi@local android]$ cd linux-3.5\\\/[yuhuashi@local linux-3.5]$ cp tiny4412_linux_defconfig .config[yuhuashi@local linux-3.5]$ make -j4......此处省略一万字OBJCOPY arch\\\/arm\\\/boot\\\/zImageKernel: arch\\\/arm\\\/boot\\\/zImage is readyOK,看到上面这两句话我们就知道编译成功了,并且编译好的内核放在了 arch\\\/arm\\\/boot\\\/zImage 这里。

可以开始烧写系统到开发板了,鸡冻ing...====================华丽的分割线====================接下来我们将编译好的数据拷贝到SD卡上,然后就可以通过SD卡烧写系统了。

首先将友善之臂(Tiny4412 开发板的制造商)提供的 Superboot(就是个 bootloader) 烧写到 SD 卡上,使我们的 SD 卡可以引导起来。

1.插入 SD 卡2.查看 SD 卡对应的设备文件[yuhuashi@local tools]$ sudo fdisk -lDisk \\\/dev\\\/sdc: 7948 MB, 7948206080 bytes19 heads, 10 sectors\\\/track, 81704 cylinders, total 15523840 sectorsUnits = sectors of 1 * 512 = 512 bytesSector size (logical\\\/physical): 512 bytes \\\/ 512 bytesI\\\/O size (minimum\\\/optimal): 512 bytes \\\/ 512 bytesDisk identifier: 0x00000000Device Boot Start End Blocks Id System\\\/dev\\\/sdc1 155217 15523839 7684311+ b W95 FAT32可见我的 SD 卡是 \\\/dev\\\/sdc,各位在后面看到我的命令中包含 \\\/dev\\\/sdc 或 \\\/dev\\\/sdc1 时,需要替换成你机器上查询出来对应的设备文件路径,千万不要写错了

====前方高能预警,请无关人员立即撤离,相关人员必须在意识清醒的情况下谨慎操作====3.将 Superboot 烧写到 SD 卡上其实可以自己用 read(2)、write(2) 函数等方式烧写,我已经有一个现成的工具了,所以直接就拿来用了。

各位如果没有烧写工具可以自己写一个,因为我没有该工具的源码所以就不贴源码了,注意别把分区表覆盖了就行。

另外 bootloader 是烧写在设备上的(即\\\/dev\\\/sdc),而不是烧写在分区上的(\\\/dev\\\/sdc1)。

[yuhuashi@local tools]$ .\\\/write4412boot Usage:write4412boot> [yuhuashi@local tools]$ sudo .\\\/write4412boot ..\\\/images_all\\\/Superboot4412.bin \\\/dev\\\/sdc start ...........end ...........4.将 ramdisk-u.img、system.img、userdata.img 以及 linux 内核 linux-x.x\\\/arch\\\/arm\\\/boot\\\/zImage 以及 Superboot4412.bin 拷贝到SD卡images目录下。

[yuhuashi@local android-4.2.2_r1]$ mkdir -p \\\/media\\\/yuhuashi\\\/2CAA-71B6\\\/images\\\/Android4.2.2\\\/[yuhuashi@local android-4.2.2_r1]$ cp ramdisk-u.img system.img userdata-4g.img \\\/media\\\/yuhuashi\\\/2CAA-71B6\\\/images\\\/Android4.2.2\\\/[yuhuashi@local android-4.2.2_r1]$ cp userdata-16g.img userdata-8g.img userdata.img \\\/media\\\/yuhuashi\\\/2CAA-71B6\\\/images\\\/Android4.2.2\\\/[yuhuashi@local android-4.2.2_r1]$ cd ..[yuhuashi@local android]$ cd linux-3.5\\\/[yuhuashi@local linux-3.5]$ cp arch\\\/arm\\\/boot\\\/zImage \\\/media\\\/yuhuashi\\\/2CAA-71B6\\\/images\\\/Android4.2.2\\\/[yuhuashi@local android-4.2.2_r1]$ cp ~\\\/arm\\\/class_boot\\\/source\\\/images_all\\\/Superboot4412.bin \\\/media\\\/yuhuashi\\\/2CAA-71B6\\\/images\\\/我们前面已经将 Superboot 烧写到 SD 卡上了,之所以还要再拷贝 一份到 SD 卡上,是因为之前烧写 Superboot 是为了让 SD 卡可以启动,而现在拷贝到 SD 卡上的这份 Superboot 是为了一会儿烧写进 eMMC 中在开发板上引导我们的 Android 系统。

注意我拷贝的一个镜像叫做 userdata-4g.img,昨天说过在 Android 编译完成后,我们执行 .\\\/gen-img.sh 命令生成了几个 img 文件,其中包含 userdata-16g.img、userdata-4g.img、userdata-8g.img、userdata.img,这几个镜像适用于不同大小的 eMMC 的设备。

一般来说使用 userdata.img 就可以了,但是 友善之臂 的开发板有些特殊,4GB eMMC 的板子必须使用 userdata-4g.img 才行。

5.在 SD 卡的 images 文件夹中创建 FriendlyARM.ini 文件[yuhuashi@local images]$ vim FriendlyARM.ini#This line cannot be removed. by FriendlyARM()CheckOneButton=NoAction = InstallOS = AndroidLowFormat = NoVerifyNandWrite = NoLCD-Mode = NoCheckCRC32=NoStatusType = Beeper | LED################### Android 4.2.2 ####################Android-BootLoader = Superboot4412.binAndroid-Kernel = Android4.2.2\\\/zImageAndroid-CommandLine = console=ttySAC0,115200n8 androidboot.console=ttySAC0 ctp=2 skipcali=y vmalloc=512m ethmac=1C:6F:65:34:51:7E lcd=S70 uhost=nAndroid-RamDisk =Android4.2.2\\\/ramdisk-u.imgAndroid-RootFs-InstallImage = Android4.2.2\\\/system.imgAndroid-UserData-4G = Android4.2.2\\\/userdata-4g.imgAndroid-UserData-8G = Android4.2.2\\\/userdata-8g.imgAndroid-UserData-16G = Android4.2.2\\\/userdata-16g.imgAndroid-UserData = Android4.2.2\\\/userdata.img注意第一行的注释不要删掉,不然 Superboot 可能无法引导。

完成后卸载掉 SD 卡,然后将卡插入到开发板的插槽中,将启动模式开关拨动到 SD 卡启动。

[yuhuashi@local images]$ cd ~[yuhuashi@local ~]$ umount \\\/media\\\/yuhuashi\\\/2CAA-71B6

我linux移植时的问题怎么改呢

可以详细一点

得看你移植到什么架构上,要是arm结构的还得确定你的目标机(linux)是否安装了交叉工具链,先到linux的镜像站下载你需要的内核,tar解压,到内核的目录下进行内核的配置一般用make menuconfig ARCH=arm(可以把内核\\\/arch\\\/\\\/boot\\\/configs拷贝成内核arch\\\/.config),编译make uImage ARCH-arm CROSS_COMILE=arm-linux-之后就是根文件系统rootfs的制作,要是使用命令还需要配置busybox。

三两句是多不清楚的,可以到chinaunix、csdn之类的论坛博客去找具体信息。

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片