【北京迅为】iTOP-4412全能版使用手册-第九十五章 嵌入式Ubuntu系统开发

iTOP-4412全能版采用四核Cortex-A9,主频为1.4GHz-1.6GHz,配备S5M8767 电源管理,集成USB HUB,选用高品质板对板连接器稳定可靠,大厂生产,做工精良。接口一应俱全,开发更简单,搭载全网通4G、支持WIFI、蓝牙、陀螺仪、CAN总线、RS485总线、500万摄像头等模块,稳定运行Android 4.0.3/Android 4.4操作,系统通用Linux-3.0.15+Qt操作系统(QT支持5.7版本),Ubuntu版本:12.04,接口智能分配 方便好用。

【交流群2】258811263(获取开源资料)

【迅为B站】北京迅为电子的个人空间-北京迅为电子个人主页-哔哩哔哩视频


第九十五章 嵌入式Ubuntu系统开发

95.1 Ubuntu下使用WiFi

用户使用 Ubuntu 的时候,需要修改一下配置,wifi 才能使用。

需要注意的是,全能版 V3.5 及其以后的版本,需要按照精英版 wifi 配置,因为 V3.5 的全能版和精英版的 wifi 都是 mt6620 了。如果是以前版本的全能版,则需要使用全能版的修改方法。

95.1.1 精英版wifi 配置

开发板上电启动进入到 Ubuntu 系统后,在开发板的串口里面使用命令“vi /etc/init.d/itop-set”,如下图:

 然后打开 itop-set 文件,可看到以下内容:

#	mknod /dev/stpwmt c 190 0
#	mknod /dev/stpgps c 191 0
#	mknod /dev/fm c 193 0
#	mknod /dev/wmtWifi c 194 0

#  insmod /system/lib/modules/mtk_hif_sdio.ko 
# insmod /system/lib/modules/mtk_stp_wmt.ko 
# insmod /system/lib/modules/mtk_stp_uart.ko 
# insmod /system/lib/modules/mtk_stp_gps.ko
#	insmod /system/lib/modules/mt6620_fm_drv.ko 
#	insmod /system/lib/modules/mtk_fm_priv.ko
#	insmod /system/lib/modules/mtk_wmt_wifi.ko WIFI_major=194 
#	insmod /system/lib/modules/wlan.ko

#	chmod 0666 /dev/stpwmt #	chmod 0666 /dev/stpgps
# chmod 0666 /dev/fm
# chmod 0666 /dev/wmtWifi # chmod 0660 /dev/ttySAC0 
# chmod 0666 /dev/gps

# /system/bin/6620_launcher -m 1 -b 921600 -n /system/etc/firmware/mt6620_patch_hdr.bin -d
/dev/ttySAC0 &

# sleep 1

# echo 1 > /dev/wmtWifi

#	wpa_supplicant -d -Dwext -iwlan0 -c /etc/wpa_supplicant.conf & 
#	dhclient wlan0 &

修改成下面的内容(其他的地方不要修改,因为这个文件里也包括全功能板的 wifi 配置):

mknod /dev/stpwmt c 190 0
mknod /dev/stpgps c 191 0
mknod /dev/fm c 193 0
mknod /dev/wmtWifi c 194 0

insmod /system/lib/modules/mtk_hif_sdio.ko 
insmod /system/lib/modules/mtk_stp_wmt.ko 
insmod /system/lib/modules/mtk_stp_uart.ko 
insmod /system/lib/modules/mtk_stp_gps.ko 
insmod /system/lib/modules/mt6620_fm_drv.ko 
insmod /system/lib/modules/mtk_fm_priv.ko
insmod /system/lib/modules/mtk_wmt_wifi.ko WIFI_major=194 
insmod /system/lib/modules/wlan.ko

chmod 0666 /dev/stpwmt
chmod 0666 /dev/stpgps
chmod 0666 /dev/fm
chmod 0666 /dev/wmtWifi
chmod 0660 /dev/ttySAC0
chmod 0666 /dev/gps

/system/bin/6620_launcher -m 1 -b 921600 -n /system/etc/firmware/mt6620_patch_hdr.bin -d
/dev/ttySAC0 &
sleep 1

echo 1 > /dev/wmtWifi

wpa_supplicant -d -Dwext -iwlan0 -c /etc/wpa_supplicant.conf & dhclient wlan0 &

修改完成以后保存并退出,然后使用命令“vi /etc/wpa_supplicant.conf”,如下图:

 将会打开 wpa_supplicant.conf 文件,如下图:

在这个文件里根据您的路由器来设置里面的无线网络名称,密码,网络类型,修改完成后保存并退出。

也可以使用命令来配置无线网络的名称和密码:

wpa_passphrase XXX "YYY " >> /etc/wpa_supplicant.conf

其中 XXX 代表您的 WiFI 网络名称, YYY 代表 WPA-PSK 或者 WPA2-PSK 加密的密码。如下图。

然后重启开发板。系统起来后,使用:

wpa_supplicant -Dwext -iwlan0 -c /etc/wpa_supplicant.conf -B

命令后,可以看见 wifi 模块上的 led 灯在闪烁。此时查看 ip,如下图。

由上图可知,已经成功连接上无线网络。

95.1.2 全能板wifi 配置

开发板上电启动进入到 Ubuntu 系统后,在开发板的串口里面使用命令“vi /etc/init.d/itop-set”,如下图。

打开 itop-set 文件,把里面的内容:

# insmod /lib/firmware/ath6k/AR6003/hw2.1.1/cfg80211.ko

# insmod /lib/firmware/ath6k/AR6003/hw2.1.1/ath6kl_sdio.ko

# sleep 1

改成下面的内容(其他的地方不要修改,因为这个文件里也包括精英板的 wifi 配置):

insmod /lib/firmware/ath6k/AR6003/hw2.1.1/cfg80211.ko

insmod /lib/firmware/ath6k/AR6003/hw2.1.1/ath6kl_sdio.ko

sleep 1

然后保存并退出,重启开发板就可以在桌面右上角的 wifi 图标来连接无线网络了。

 

95.2 Ubuntu 文件系统声卡的配置

iTOP-4412 开发板支持的 Ubuntu 系统,声卡应用默认没有打开。本小节介绍如何设置Ubuntu 声卡。

(1)开发板启动运行 Ubuntu 系统,使用网线连接路由器,使用命令“apt-get install vim”安装 vim 编辑器(Ubuntu 默认支持有线网;Ubuntu 自带的 vi 编辑器不支持复制,后面复制部分需要手动输入,如果用户想手动输入也可以不安装 vim 编辑器)。

(2)在控制台输入“vim /etc/hosts”命令打开文件“/etc/hosts”,在所打开界面的第一行最后添加“iTOP4412-ubuntu-desktop”, 保存退出。

(3)命令行输入“vim /etc/init.d/itop-set”,可以看到四条命令

amixer cset numid=7 127

amixer cset numid=8 1

amixer cset numid=40 1

amixer cset numid=45 1

 将这四条命令复制到控制台依次执行。

(4)然后右键点击需要播放的音乐,“右键”→“ Open With Rhythmbox Music Player”,之后可能会弹出来需要安装什么补丁或者什么其他的东西,按照提示默认安装。

(5)由于 Ubuntu 在 root 用户下,为了安全考虑默认是关闭了声音系统的。因为 root 登录后 pulseaudio 没有启动,所以要先启动它,需要将 root 加到 pulse 和 pulse-access 组,在控制台使用以下命令启动 pulseaudio:

sudo usermod -a -G pulse-access root 
gpasswd -a root pulse
gpasswd -a root pulse-access

 (6)最后编辑“/etc/default/pulseaudio”文件,使用命令“

cp -p /etc/default/pulseaudio /etc/default/pulseaudio.bak

接着使用命令“vim /etc/default/pulseaudio”打开 pulseaudio 文件。

修改 pulseaudio 文件中参数 PULSEAUDIO_SYSTEM_START 修改为 1,参数DISALLOW_MODULE_LOADING 修改为 0。表示允许运行在 system 环境,允许动态加载模块。

重启开发板,声卡就可以正常使用了。

95.3 Ubuntu 扩展 root 目录空间

使用默认的分区和烧写方法,Ubuntu 的 root 目录剩余空间很小。本小节介绍如何修改分区命令来扩展 root 目录。

在对 eMMC 分区时,默认使用的是分区命令是“fdisk -c 0 2700 300 300”,可以将分命令修改为:

fdisk -c 0 2900 50 50

其它烧写步骤不变,烧写完成之后,Ubuntu 从开发板的 eMMC 启动,然后将拷贝到eMMC 中的压缩包“iTOP4412_ubuntu_12.04_for_LCD_20141230.tar.gz”删除,如下图所示。

如上图所示,root 目录可以扩展到 1.7G。

95.4 Ubunt下CAN总线的使用

本文档介绍的是在 Ubuntu 系统环境下 iTOP-4412 的 CAN 实验调试步骤。给用户提供了“can_libs.rar”、“can_libs_more.zip”、“can_tools.zip”和“can_test.zip”压缩包,分别是 can 工具需要的库文件、can 工具二进制文件以及 c 的测试源码。在网盘资料的“iTOP4412开发板资料汇总(不含光盘内容)\iTOP-4412开发板系统开发资料\iTOP-4412-Ubuntu-CAN总线使用指导文档_V1.0”。

CAN 是 Controller Area Network 的缩写,是 ISO 国际标准化的串行通信协议。近年来,其所具有的高可靠性和良好的错误检测能力受到重视,被广泛应用于汽车计算机控制系统和环境温度恶劣、电磁辐射强和振动大的工业环境。

1硬件连接

作者测试 CAN 总线,使用的是 1 块 iTOP-4412 开发板,一块迅为的 CAN 总线模块, 排母一段接开发板“GPIO/CAN/485”,CAN 模块的+连接+,-连接-,如下图所示:

全能版的 can 如下图:

精英版的 can,如下图所示,精英版需要 CAN 模块,内核也需要配置: 

2内核配置

如果用户使用的是全能版,则可以直接跳过这一小节,如下图所示,作者使用的是默认的精英版内核,使用命令“ls /dev/rc522”,可以看到 RFID 的驱动,那么这个配置的内核是不能支持 can 的,必须去掉 rc522 添加 can 的驱动,重新烧写 Ubuntu 的支持 can 的内核。

请注意:如果用户已经添加了给开发板烧写了 Ubuntu,烧写新的内核,是不需要重新烧写整个 Ubuntu 的,只需要使用 OTG 烧写方式,更新一下内核:

精英版的内核配置如下,如下图所示,作者的开发板已经烧写了 Ubuntu 系统,开发板是scp 的,如果用户是其它型号,则需要使用对应的缺省文件。 

使用命令“cp -r config_for_ubuntu_scp .config”配置缺省文件。使用命令“make menuconfig”,进入 menuconfig 配置: 

进入

Device Drivers --->

[*] SPI support --->

将“RC522 Module driver support”其去掉,如下图所示:

 

然后进入

Networking support --->

CAN bus subsystem support --->

CAN Device Drivers --->

将“Microchip MCP251x SPI CAN controllers”配置,这是 can 的驱动,如下图所示:

 

保存缺省文件,然后“make zImage”命令编译新的内核。通过 fastboot 工具重新烧写编译内核,如下图所示,只需要更新 zImage,其它不要更新。烧写如下图所示: 

 

烧写完毕之后,重新启动开发板,进入文件系统,如下图所示,使用命令“ls /dev/rc522”看不到“rc522”的设备节点。 

 然后使用命令“ifconfig -a”可以看到 can0: 

 

3 CAN config 工具配置

和文档一起的有 canconfig 工具、库文件和测试程序的压缩包“can_tools.zip”、“can_libs.rar”、“can_libs_more.zip”、“can_test.zip”。

can_tools.zip”为 canconfig 工具,将其拷贝到开发板 Ubuntu 系统的“/sbin”目录下,并用 chmod 命令将修改权限为 777。

can_libs.rar”和“can_libs_more.zip”库文件,解压之后将其中的库文件拷贝到开发板 Ubuntu 系统的“/lib”目录下,并用 chmod 命令将修改权限为 777。

can_test.zip”为编译好的测试程序和源码。

4测试软件的使用

请注意,测试前一定要看面小节的内容。

1保证硬件连接正确,如果是精英版则需要有对应的模块;

2要保证使用“ifconfig -a”出现 can0;

3canconfig 的工具等要配置好,并修改权限,对应的库文件也要拷贝和修改权限。

最后再介绍一下如何使用测试程序。

压缩包“can_test.zip”中的“can_test”为编译好的二进制文件,can_test.c 为测试源码,作者使用的是 arm-2009q3 编译器编译的源码。

将“can_test”拷贝到开发板上,修改权限,然后使用命令“./can_test -r can0”,这样就处于接收状态。

 can 设备另外一端发过来数据,可以接收到,如下图所示,作者另外一端使用的是迅为另外一款开发板的 Ubuntu 系统。

发送命令“./can_test -s can0”截图,作者发送了三次,如下图所示: 

4412 开发板接收,如下图所示,4412 开发板接收到三组数据。 

 另外一端处于接收状态,4412 开发板发送命令“./can_test -s can0”如下图所示。

 另外一端接收,如下图所示:

 

至此,4412 的 Ubuntu 系统 can 的测试完毕。

95.5 Ubuntu移植USB-3G上网卡

本文档将介绍如何移植华为 E261 WCDMA 12d1:1446USB 上网卡到 4412 开发板Ubuntu 系统。

配套资料在网盘资料的“iTOP4412开发板资料汇总(不含光盘内容)\iTOP-4412开发板系统开发资料\iTOP-4412-Ubuntu-usb3G上网卡移植”。

95.5.1 内核配置

配置内核以下选项

Device Drivers >

USB support

<*>USB Mass Storage support

[*]USB Mass Storage verbose debug

<*>Realtek Card Reader support

<*>Datafab Compact Flash Reader support

如下图:

DeviceDrivers-->

[*]USB support-->

<*>USB Serial Converter support-->

[*]USB Generic Serial Driver

<*>USB driver for GSM and CDMA modems

以及

Device Drivers >

Network device support>

PPP***全选

如下图所示

然后编译内核,烧写到开发板。

移植应用层的四个工具,它们互相有依赖关系,为了方便编译,将它们拷贝到同一目录并解压,如下图所示。

95.5.2 编译 libusb-0.1.12

进入文件夹 libusb-0.1.12,执行以下命令。

./configure --host=arm-none-linux-gnueabi --prefix=$(pwd)/../ install

它将设置使用的编译器,并且指定 make install 后生成目录的路径为上级目录下的 install 文件夹,结果如下图所示,

 

然后执行“make” 以及“make install”,可以看到在上级目录产生了“ install”文件夹,如下所示。 

 

95.5.3 编译 usb-modeswitch-1.2.6

编译该工具需要使用上一步生成的库文件以及头文件,即 include 以及 lib 文件夹,进入源码文件夹 usb-modeswitch-1.2.6,将 Makefile 改成以下所示内容。

 

以及 

 

保存并编译,输入 make 指令,如下图所示。 

 

95.5.4 编译 usb-modeswitch

进入该源码文件夹的 usb_modeswitch.d 目录,如下图所示。

 

使用命令“vim 12d1:1446”打开文件,并修改成以下内容。 

# Huawei, newer modems 
DefaultVendor= 0x12d1 
DefaultProduct= 0x1446

TargetVendor=0x12d1 
TargetProductList="1001,1406,140b,140c,1412,141b,1432,1433,1436,14ac"
CheckSuccess=20

MessageContent="55534243123456780000000000000011062000000101000100000000000000"

DisableSwitching=0 
EnableLogging=0

如下图所示,

 

95.5.5 编译ppp-2.4.4

进入源码目录,运行以下命令编译

./configure

make CC=arm-none-linux-gnueabi-gcc

编译到此完成,可以看到在 pppd 文件夹生成了 pppd 工具,在 chat 文件夹生成了 chat工具,如下图所示。

 

 

编译工作到此完成,接下来分别将每一步编译得到的工具拷贝到开发板。

(1)将22.5.3中install/lib目录下的libusb.so,libusb-0.1.so.4,libusb-0.1.so.4.4.4 拷贝到开发板的/lib 文件夹。

(2)将22.5.3中编译得到的 usb_modeswitch 文件拷贝到开发板的/usr/sbin/目录。

(3)将22.5.4中修改的文件 12d1:1446 拷贝到开发板的/etc/usb_modeswitch.d/目录下。注意到 Windows 与 Linux 的文件命名规则不同,:在 Windows 上会被自动转换成%3A。用户需要先把文件拷贝到开发板上再重命名。重命名操作如下图所示。

 

(4)将 22.5.5中得到的 pppd 和 chat 工具拷贝到开发板/usr/sbin/目录。

(5)将压缩包提供的脚本 wcdma,wcdma-chat-connect,wcdma-chat-disconnect 拷贝到开发板的/etc/ppp/peers/目录下。

(6)在开发板使用以下指令,建立软连接。

ln /lib/ld-linux-armhf.so.3 /lib/ld-linux.so.3 

95.5.6 测试

拷贝完成后,将上网卡 E261 插到开发板上,使用命令 lsusb 检查是否识别到上网卡,识别过程需要几秒钟,若成功如下图所示。

 

等待上网卡闪烁蓝灯,然后输入以下指令

usb_modeswitch -W -c /etc/usb_modeswitch.d/12d1:1446

之后运行压缩包中提供的脚本 pppd_conf.sh,运行耗时大约 20s,设置完成后即可上网,如下图所示。

 

脚本运行完成之后如下图所示。 

 

可以看到已经可以 ping 通网站。 

 

95.6 Ubuntu手动挂载盘符

烧写 ubuntu 时,如果 Ubuntu 可以启动,但是不显示 tf 卡盘符,则可以参考本文档,手动挂载盘符。

使用本文档,前提条件是之前的烧写步骤按照手册都可以顺利完成。本手册适用迅为4412、4418 和 6818 开发板,但以 6818 的手册截图为例,用户可自己对应步骤,进行后续操作。

在按照手册烧写 ubuntu 系统时,完成下图操作后

 

使用“df -l”命令查看盘符加载情况时,盘符可能会出现不显示的情况,如下图所示: 

 

但是,查看 dev 下的设备,可以看见盘符存在: 

 

可以通过手动命令加载盘符来解决该问题。先在/media 下新建两个目录,然后挂载。如下图所示: 

 

进入/media/test1 路径下,可以看到压缩包。使用

tar vxf /media/NEW\VOLUME/iTOP4412_ubuntu_12.04_for_LCD_20141230.tar.gz -C ./

命令,解压到当前目录下。

 

之后的步骤,请继续参考“xx 使用手册”完成。 

 

95.7 Ubuntu开启双声道

4412-开发板-ubuntu12.04 系统默认只开启了一个声道,下面介绍开启双声道的办法(先参考“iTOP-4412-Ubuntu 系统源码-ubuntu 没有声音的解决办法”文档修改配置)。

具体步骤如下:

使用“sudo apt-get install gnome-alsamixer”命令安装 gnome-alsamixer 应用。为确认安装好,再次执行刚才的命令,如下图。

 

应用程序安装好之后。

在连接开发板的键盘上按“win”键,进入搜索界面。在搜索输入框输入“alsa”可以显示如下图所示应用。

 

用鼠标点击进入该应用。如下图。(有一个错误提示,不必理会) 

 

按照上图所示,把“Left Boost Mixer LINPUT1”修改为“Left Output Mixer PCM”如下图。可以听见两个声道都有声音了。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值