明远智睿嵌入式

个性签名:明远智睿 您的一站式 嵌入式 方案提供商

  • 2019-03-22
  • 发表了主题帖: 明远智睿MY-IMX28系列评估板Linux-3.14.54驱动和设备

    MY-IMX28系列评估板 Linux-3.14.54 驱动和设备 1  文档说明 1.1  系统环境说明编译主机CPU架构:64位 编译主机系统:Linux Linux发行版:Ubuntu Ubuntu版本类型:服务器版 Ubuntu版本号:12.04.5 Ubuntu系统类型:x86-64 注意:开发主机请使用ubuntu 12.04.5 x86-64(桌面版或服务器版均可),使用其他发行版的Linux或Ubuntu的其它版本可能会遇到的不必要的问题。 1.2  操作说明1)文档中以“$”开头的行,其后是Linux命令。 2)文档中所有的Linux命令建议手动输入到Linux主机执行(直接复制、粘贴到Linux主机上执行,可能会执行失败)。 3)文档中的Linux执行命令,如果空格后的下一个字符是“-”的(如:sudo apt-get –y install之类的),请手动输入到Linux主机执行(直接复制、粘贴到Linux主机上执行,通常会执行失败)。 4)文档中所有一行没写完的Linux命令请手动输入到Linux主机执行,(因为复制、粘贴命令不能包含类似“换行符”之类的特殊字符)。 5)按文档输入并执行Linux命令时注意观察命令的执行结果与文档图片中的是否一致,以确认命令是否输入有误及是否执行失败。 6)第一遍编译请严格按照文档进行,否则可能出现莫名其妙的错误。 1.3  截图说明为使视图看起来简洁整齐,截图中的命令提示符统一使用myzr$。 1.4  图片中的Linux命令在文档的图片中观察“linyn@u12045-serv:~$”开头的行可以直观的看到输入的linux命令。 2  驱动及相关设备文件评估板对应的Linux-3.14.54版本及对应的源码文件和设备见下表: 设备树主文件:arch/arm/boot/dts/imx28-evk.dts设备树基础文件:arch/arm/boot/dts/imx28.dtsi管脚功能文件:arch/arm/boot/dts/imx28-pinfunc.h注意:想详细查看寄存器,请查看“MCIMX28RM.pdf”文件。

  • 2019-03-21
  • 发表了主题帖: 明远智睿MY-R16 开发板 烧录指导

    本帖最后由 明远智睿嵌入式 于 2019-3-21 11:24 编辑 MY-R16 开发板 烧录指导 1  安装PhoenixSuit1)下载PhoenixSuit_CN.msi文件,双击运行。 点击下一步 2)选择软件安装路径,然后点击下一步。 3)点击下一步安装驱动。 4)安装完成 2  烧写1)将编译打包好的固件复制到电脑上2)安卓的固件在~/R16/lichee/tools/pack目录下的sun8iw5p1_android_evb-30_uart0.img文件3)Linux的固件在~/tinaV2.1/out/astar-parrot/目录下的 tina_astar-parrot_uart0.img文件4)打开PhoenixSuit软件,点击一键刷机并点击浏览选择要烧写的固件。 5)用USB线将电脑和开发板连接,按住开发板上的VOL+按钮,然后接通电源,直到弹出下面的窗口时放开VOL+按钮,并点击"是" 6)等待烧写完成。 7)烧写完成

  • 2019-03-20
  • 发表了主题帖: 明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(4)

    本帖最后由 明远智睿嵌入式 于 2019-3-20 09:35 编辑 【接上一章节明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(3)】 3  第三部分 显示功能测试 3.1  操作说明  每项显示功能测试都需要重启系统进入到u-boot命令行,并在u-boot命令行下执行指令。 3.2  单屏显示LVDS1 显示 说明:默认为 LVDS1 显示,即上电后不干预启动的情况下,LVDS1 为显示设备。 显式配置 LVDS1 为显示的方法:run load_scr; source; setenv display $disp_fb0_lvds1; saveenv; bootLVDS0 显示run load_scr; source; setenv display $disp_fb0_lvds0; saveenv; bootHDMI 显示run load_scr; source; setenv display $disp_fb0_hdmi; saveenv; bootLCD(RGB) 显示run load_scr; source; setenv display $disp_fb0_lcd; saveenv; boot 3.3  双LVDS屏显示LVDS1 + LVDS0 双屏同步显示run load_scr; source; setenv display $disp_lvds_dul; saveenv; bootLVDS1 + LVDS0(fb4) 双屏异步显示run load_scr; source; setenv display $disp_lvds_sep; saveenv; boot 3.4  双屏异步显示LVDS1 + HDMI 双屏异步显示run load_scr; source; setenv display $disp_fb0_lvds1 $disp_fb1_hdmi; saveenv; bootLVDS1 + LCD(RGB) 双屏异步显示run load_scr; source; setenv display $disp_fb0_lvds1 $disp_fb1_lcd; saveenv; bootLVDS0 + HDMI 双屏异步显示run load_scr; source; setenv display $disp_fb0_lvds0$disp_fb1_hdmi; saveenv; bootLVDS0 + LCD(RGB) 双屏异步显示run load_scr; source; setenv display $disp_fb0_lvds0 $disp_fb1_lcd; saveenv; bootHDMI + LVDS1 双屏异步显示run load_scr; source; setenv display $disp_fb0_hdmi $disp_fb1_lvds1; saveenv; bootHDMI + LVDS0 双屏异步显示run load_scr; source; setenv display $disp_fb0_hdmi $disp_fb1_lvds0; saveenv; bootLCD(RGB) + LVDS1 双屏异步显示run load_scr; source; setenv display $disp_fb0_lcd $disp_fb1_lvds1; saveenv; bootLCD(RGB) + LVDS0 双屏异步显示run load_scr; source; setenv display $disp_fb0_lcd $disp_fb1_lvds0; saveenv; boot 4  第四部分 扩展模块功能演示 4.1  RTL8188 模块功能演示(WIFI Client)  【测试说明】:使用RTL8188作为无线网卡连接到WIFI AP。   【接口标识】:WIFI、WIFI_ANT   【系统设备】:wlan0 测试操作   1. 确定“WIFI”标识处有贴上WIFI模块,否则无需进行测试。   2. 把WIFI天线连接到“WIFI_ANT”标识的接口上。   3. 生成 SSID 的 WPA PSK 文件   命令格式: wpa_passphrase <ssid> [passphrase]=====> 输入指令:wpa_passphrase MY-TEST-AP myzr2012 > /etc/wpa_supplicant.confpkill wpa_supplicant  4. 连接=====> 输入指令:wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf =====> 输出信息:Successfully initialized wpa_supplicantrfkill: Cannot open RFKILL control device==> rtl8188e_iol_efuse_patchIPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready......  5. 获取 IP=====> 输入指令:udhcpc -i wlan0 =====> 输出信息:udhcpc (v1.23.1) startedSending discover...Sending select for 192.168.43.121...Lease of 192.168.43.121 obtained, lease time 3600/etc/udhcpc.d/50default: Adding DNS 192.168.43.1  6. 测试连接=====> 输入指令:ping -I wlan0 192.168.43.1 -c 2 -w 4 =====> 输出信息:PING 192.168.43.1 (192.168.43.1) from 192.168.43.130 wlan0: 56(84) bytes of data.64 bytes from 192.168.43.1: icmp_seq=1 ttl=64 time=5.66 ms64 bytes from 192.168.43.1: icmp_seq=2 ttl=64 time=9.22 ms --- 192.168.43.1 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1000msrtt min/avg/max/mdev = 5.663/7.444/9.226/1.783 ms测试结果   “0% packet loss”表示WIFI连接正常。 4.2  RTL8188 模块功能演示(WIFI AP mode)  【测试说明】:使用RTL8188作为WIFI AP,并把手机连接到此AP。   【接口标识】:WIFI、WIFI_ANT   【系统设备】:wlan0 测试操作   1. 确定“WIFI”标识处有贴上WIFI模块,否则无需进行测试。   2. 把WIFI天线连接到“WIFI_ANT”标识的接口上。   3. 为 wlan0 配置 IP:=====> 输入指令:ifconfig wlan0 192.168.99.1 =====> 输出信息:==> rtl8188e_iol_efuse_patchIPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready  4. 为 wlan0 启用 DHCP 服务:=====> 输入指令:touch /var/lib/misc/udhcpd.leasesudhcpd -f /etc/my_udhcpd.conf & =====> 输出信息:[1] 469udhcpd (v1.23.1) started  5. 为 wlan0 启用 Host-AP 功能=====> 输入指令:hostapd /etc/my_hostapd.conf -B =====> 输出信息:Configuration file: /etc/my_hostapd.confrfkill: Cannot open RFKILL control deviceUsing interface wlan0 with hwaddr e0:b9:4d:7f:e4:40 and ssid "MY_HOSTAP_V25"RTL871X: set group key camid:1, addr:00:00:00:00:00:00, kid:1, type:AESwlan0: interface state UNINITIALIZED->ENABLEDwlan0: AP-ENABLED  5. 客户端设备连接到 Host-AP   至此,开发板的 Host-AP 功能已启用,客户端设备可搜索“MY_HOSTAP_V25”,通过密码“myzr2012”连接到此AP。 测试结果   1. 设备连接成功时产生的信息=====> 输出信息:Sending OFFER of 192.168.12.20Sending OFFER of 192.168.12.20Sending ACK to 192.168.12.20  2. 设备断开连接时产生的信息=====> 输出信息:RTL871X: OnDeAuth(wlan0) reason=3, ta=b4:0b:44:f5:64:2fRTL871X: clear key for addr:b4:0b:44:f5:64:2f, camid:4 4.3  EC20 模块测试  【测试说明】:4G连接成功后,开发板向外网发送ICMP报文来验证连接正常。   【接口标识】:MINI_PCIE   【系统设备】:eth2 测试操作   1. 开发板断电,接上4G模块,接上天线并插入SIM卡后启动评估板。   2. 使用指令进行网络连接:=====> 输入指令:/my-demo/gcc-linaro-5.3-arm/quectel-CM & =====> 输出信息:[1] 540[12-18_03:17:06:719] WCDMA<E_QConnectManager_Linux&Android_V1.1.34[12-18_03:17:06:720] /my-demo/gcc-linaro-5.3-arm/quectel-CM profile[1] = (null)/(null)/(null)/0, pincode = (null)[12-18_03:17:06:723] Find /sys/bus/usb/devices/1-1.2 idVendor=2c7c idProduct=0125[12-18_03:17:06:723] Find /sys/bus/usb/devices/1-1.2:1.4/net/eth2[12-18_03:17:06:723] Find usbnet_adapter = eth2[12-18_03:17:06:723] Find /sys/bus/usb/devices/1-1.2:1.4/GobiQMI/qcqmi2[12-18_03:17:06:724] Find qmichannel = /dev/qcqmi2[12-18_03:17:06:794] Get clientWDS = 7[12-18_03:17:06:826] Get clientDMS = 8[12-18_03:17:06:858] Get clientNAS = 9[12-18_03:17:06:890] Get clientUIM = 10[12-18_03:17:06:922] Get clientWDA = 11[12-18_03:17:06:954] requestBaseBandVersion EC20CEFAR02A10M4G[12-18_03:17:07:050] requestGetSIMStatus SIMStatus: SIM_READY[12-18_03:17:07:082] requestGetProfile[1] cmnet///0[12-18_03:17:07:114] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: LTE[12-18_03:17:07:146] requestQueryDataCall IPv4ConnectionStatus: DISCONNECTED[12-18_03:17:07:223] requestRegistrationState2 MCC: 460, MNC: 0, PS: Attached, DataCap: LTE[12-18_03:17:07:274] requestSetupDataCall WdsConnectionIPv4Handle: 0x8777e7a0[12-18_03:17:07:370] requestQueryDataCall IPv4ConnectionStatus: CONNECTED[12-18_03:17:07:403] ifconfig eth2 up[12-18_03:17:07:452] busybox udhcpc -f -n -q -t 5 -i eth2[12-18_03:17:07:492] udhcpc (v1.23.1) started[12-18_03:17:07:656] Sending discover...[12-18_03:17:07:706] Sending select for 10.25.154.46...[12-18_03:17:07:766] Lease of 10.25.154.46 obtained, lease time 7200[12-18_03:17:07:888] /etc/udhcpc.d/50default: Adding DNS 211.136.17.107[12-18_03:17:07:888] /etc/udhcpc.d/50default: Adding DNS 211.136.20.203  3. 测试连接=====> 输入指令:ping -I eth2 www.baidu.com -c 2 -w 4 =====> 输出信息:PING www.baidu.com (14.215.177.38): 56 data bytes64 bytes from 14.215.177.38: seq=0 ttl=49 time=15.753 ms64 bytes from 14.215.177.38: seq=1 ttl=49 time=11.835 ms --- www.baidu.com ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max = 11.835/13.794/15.753 ms测试结果   “0% packet loss”表示WIFI连接正常。

  • 发表了主题帖: 明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(4)

    本帖最后由 明远智睿嵌入式 于 2019-3-20 09:49 编辑 发错了  帮忙删掉

  • 2019-03-19
  • 发表了主题帖: 明远智睿R16 tinav2.1 常见问题参考手册

    R16 tinav2.1 常见问题参考手册 1  R16 tinav2.1常见问题 1.1  分区修改target/allwinner/astar-parrot/configs/sys_partition.fex 例如:    [partition]    name        = rootfs_data    size        = 12582912    user_type    = 0x8000修改其中的size属性,单位: 扇区。 如要修改成1G,计算方法如下 size = 1024 * 1024 * 1024 / 512 1.2  把文件打包到rootfs将文件放到package/base-files/files目录下即可。如果文件过大,在pack时报错,修改分区表的rootfs分区的大小 1.3  增加spi1) 在内核中添加spi 驱动$cd tinaV2.1$source build/envsetup.sh$lunch astar_parrot-tina$make kernel_menuconfig  Device Drivers --->SPI support ---><*> User mode SPI device driver support  2) 修改tinaV2.1/target/allwinner/astar-parrot/configs/sys_config.fex[spi_board0]modalias = "at25df641"sflash_size = 32max_speed_hz = 50000000bus_num = 0chip_select = 0mode = 0修改成[spi_board0]modalias = "spidev"sflash_size = 32max_speed_hz = 50000000bus_num = 0chip_select = 0mode = 0 1.4  以太网不可用$cd tinaV2.1$make kernel_menuconfigDevice Drivers --->   Network device support --->      USB Network Adapters --->         <*> Multi-purpose USB Networking Frameworksuch as cable modems)         <*> SMSC LAN95XX based USB 2.0 10/100 ethernet devices

  • 2019-03-18
  • 发表了主题帖: 明远智睿R16 android4.4 常见问题参考手册

    R16 android4.4 常见问题参考手册 1  R16 android4.4 常见问题 1.1  在内核中添加spi驱动$cd lichee/linux-3.4 $make ARCH=arm menuconfig $lunch astar_parrot-tina $make kernel_menuconfig Device Drivers ---> SPI support ---> <*> User mode SPI device driver support 修改 lichee/tools/pack/chips/sun8iw5p1/configs/evb-30/sys_config.fex  [spi_board0]  modalias      = "at25df641"  sflash_size   = 32  max_speed_hz  = 50000000bus_num       = 0  chip_select   = 0  mode          = 0  修改成 [spi_board0]modalias      = "spidev"  sflash_size   = 32  max_speed_hz  = 50000000  bus_num       = 0  chip_select   = 0  mode          = 0 1.2  以太网不能用在内核增加驱动 $make ARCH=arm menuconfig  Device Drivers --->   Network device support --->         USB Network Adapters --->              <*> Multi-purpose USB Networking Frameworksuch as cable modems)               <*> SMSC LAN95XX based USB 2.0 10/100 ethernet devices   1.3  默认勾选使用以太网1)在frameworks\base\packages\SettingsProvider\res\values\default.xml   <bool name="def_ethernet_on">true</bool>  改成true  <bool name="def_ethernet_mode">true</bool> 添加以下这两句       <bool name="def_ethernet_conf">true</bool>      <string name="def_ethernet_ifname" translatable="false">eth0</string> 2)在frameworks\base\packages\SettingsProvider\src\com\android\providers\settings\DatabaseHelper.java 添加       loadBooleanSetting(stmt, Settings.Global.ETHERNET_CONF, R.bool.def_ethernet_conf)        loadStringSetting(stmt, Settings.Global.ETHERNET_IFNAME, R.string.def_ethernet_ifname)

  • 2019-03-15
  • 发表了主题帖: 明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(3)

    本帖最后由 明远智睿嵌入式 于 2019-3-15 10:15 编辑 【接上一章节明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(2)】 2.16  SPI测试(ECSPI1)  【测试说明】:采用自发自收的方式测试。   【接口标识】:SPI1/2   【系统设备】:/dev/spidev0.1 测试操作   短接J7的7和9管脚。   执行测试指令=====> 输入指令:/my-demo/gcc-linaro-5.3-arm/spidev_test.out -D /dev/spidev0.1    =====> 输出信息:spi mode: 0bits per word: 8max speed: 500000 Hz (500 KHz) FF FF FF FF FF FF   40 00 00 00 00 95   FF FF FF FF FF FF   FF FF FF FF FF FF   FF FF FF FF FF FF   DE AD BE EF BA AD   F0 0D 测试结果   执行测试指令后,应用输出如上类似信息即正常。 2.17  SPI测试(ECSPI2)  【测试说明】:采用自发自收的方式测试。   【接口标识】:SPI1/2   【系统设备】:/dev/spidev1.0 测试操作   短接J7的8和10管脚。   执行测试指令=====> 输入指令:/my-demo/gcc-linaro-5.3-arm/spidev_test.out -D /dev/spidev1.0    =====> 输出信息:spi mode: 0bits per word: 8max speed: 500000 Hz (500 KHz) FF FF FF FF FF FF   40 00 00 00 00 95   FF FF FF FF FF FF   FF FF FF FF FF FF   FF FF FF FF FF FF   DE AD BE EF BA AD   F0 0D测试结果   执行测试指令后,应用输出如上类似信息即正常。 2.18  Watchdog 超时复位测试  【测试说明】:开启看门狗,并等待看门狗超时,产生复位。   【接口标识】:无   【系统设备】:/dev/watchdog 测试操作   运行看门狗程序:=====> 输入指令:/unit_tests/wdt_driver_test.out 10 15 1   =====> 输出信息:Starting wdt_driver (timeout: 10, sleep: 15, test: write)Trying to set timeout value=10 secondsThe actual timeout was set to 10 secondsNow reading back -- The timeout is 10 seconds测试结果   运行测试命令10秒后,WatchDog超时,系统被复位。会在终端看到系统重新启动输出的信息类似如下:U-Boot 2016.03-svn351 (Jan 25 2019 - 10:13:51 +0800) CPU:   Freescale i.MX6Q rev1.5 996 MHz (running at 792 MHz)CPU:   Extended Commercial temperature grade (-20C to 105C) at 48CReset cause: WDOGBoard: MYZR i.MX6 Evaluation KitModel: MY-IMX6-EK200-6Q-1G 2.19  Watchdog 喂狗测试  【测试说明】:开启看门狗,并使应用程序喂狗。   【接口标识】:无   【系统设备】:/dev/watchdog 测试操作   运行看门狗程序,并设置超时时间为4秒,喂狗间隔时间为2秒:=====> 输入指令:/unit_tests/wdt_driver_test.out 4 2 1 &   =====> 输出信息:[1] 1026Starting wdt_driver (timeout: 4, sleep: 2, test: write)Trying to set timeout value=4 secondsThe actual timeout was set to 4 secondsNow reading back -- The timeout is 4 seconds 2.20  RTC 测试  【测试说明】:读取并设置时间,断电重启后检查时间是否正确   【接口标识】:无   【系统设备】:/sys/class/rtc/rtc0/ 测试操作   1. 断电重启设备,查看当前系统时间和硬件时间:=====> 输入指令: date =====> 输出信息:Tue Sep 25 22:47:03 UTC 2018  2. 查看当前RTC芯片时钟:=====> 输入指令: hwclock =====> 输出信息:Tue Sep 25 22:47:18 2018  0.000000 seconds  3. 设置系统时钟,并同步到RTC芯片=====> 输入指令: date -s "2019-01-14 12:34:56"   =====> 输出信息:Mon Jan 14 12:34:56 UTC 2019  4. 将系统时钟写入硬件时钟=====> 输入指令:hwclock -w  测试结果   1. 断电重启评估板,查看当前系统时钟和硬件时钟=====> 输入指令:date =====> 输出信息:Mon Jan 14 12:36:22 UTC 2019  2. 查看当前RTC芯片时钟=====> 输入指令:hwclock   =====> 输出信息:Mon Jan 14 12:36:40 2019  0.000000 seconds可以看到我们得到的时间与设置的时间基本相同。 2.21  WakeAlarm 唤醒测试  【测试说明】:设定 wakealarm 事件,之后使系统进入睡眠,等待 wakealarm 事件唤醒。   【接口标识】:无   【系统设备】:如 /sys/class/rtc/rtc1/wakealarm 测试操作   1. 设定 rtc1,使 10 秒后产生 wakealarm 事件=====> 输入指令:echo +10 > /sys/class/rtc/rtc1/wakealarm   2. 使设备进入睡眠=====> 输入指令:echo mem > /sys/power/state =====> 输出信息:PM: Syncing filesystems ... done.Freezing user space processes ... (elapsed 0.001 seconds) done.Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.Suspending console(s) (use no_console_suspend to debug)测试结果   1. 可以看到开发板的除电源指示灯以外的 LED 都灭了。   2. 10秒内 LED 的状态又恢复了,并且系统输出类似如下信息:PM: suspend of devices complete after 90.667 msecsPM: suspend devices took 0.090 secondsPM: late suspend of devices complete after 1.286 msecsPM: noirq suspend of devices complete after 1.272 msecsDisabling non-boot CPUs ...CPU1: shutdownCPU2: shutdownCPU3: shutdownEnabling non-boot CPUs ...CPU1 is upCPU2 is upCPU3 is upPM: noirq resume of devices complete after 1.140 msecsPM: early resume of devices complete after 1.114 msecsPM: resume of devices complete after 760.379 msecsPM: resume devices took 0.760 secondsRestarting tasks ... done. 2.22  音频播放测试  【测试说明】:通过播放音频文件验证评估板的音频播放功能。   【接口标识】:EAR   【系统设备】:wm8960-audio 测试操作   把耳机插入开发板的“EAR”口。   执行测试命令:=====> 输入指令:aplay /unit_tests/audio8k16S.wav    =====> 输出信息:Playing WAVE '/unit_tests/audio8k16S.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Stereo测试结果   执行上面的测试命令后会听到音频设备输出的声音。 2.23  音频录音测试  【测试说明】:通过录音并播放录音文件验证评估板的音频录音功能。   【接口标识】:MIC   【系统设备】:wm8960-audio 测试操作   1. 把带MIC的耳机插入开发板的“MIC”口。   2. 执行录音命令:=====> 输入指令:arecord -d 5 -f S16_LE -t wav foobar.wav =====> 输出信息:Recording WAVE 'foobar.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono  3. 播放录音=====> 输入指令:aplay foobar.wav =====> 输出信息:Playing WAVE 'foobar.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono测试结果   执行上面的测试命令后会听到播放的录音。 【下章节为明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(4)】

  • 2019-03-14
  • 发表了主题帖: 明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(2)

    【接上一章节明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(1)】 2.10  GPIO-KEY测试  【测试说明】:使用 evtest 进行测试   【接口标识】:KEY3, KEY2, KEY1   【系统接口】:/dev/input/eventX 测试操作   运行 evtest 准备测试=====> 输入指令:evtest =====> 输出信息:No device specified, trying to scan all of /dev/input/event*Available devices:/dev/input/event0:  WM8962 Beep Generator/dev/input/event1:  gpio-keysSelect the device event number [0-1]:   选择 gpio-keys 所对应的序号=====> 输入指令:1 =====> 输出信息:Input driver version is 1.0.1Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100Input device name: "gpio-keys"Supported events:  Event type 0 (EV_SYN)  Event type 1 (EV_KEY)    Event code 114 (KEY_VOLUMEDOWN)    Event code 115 (KEY_VOLUMEUP)    Event code 116 (KEY_POWER)Properties:Testing ... (interrupt to exit)  按动开发板上的按键Event: time 1537921332.815219, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1Event: time 1537921332.815219, -------------- SYN_REPORT ------------Event: time 1537921332.985211, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0Event: time 1537921332.985211, -------------- SYN_REPORT ------------Event: time 1537921335.355204, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1Event: time 1537921335.355204, -------------- SYN_REPORT ------------Event: time 1537921335.535203, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 0Event: time 1537921335.535203, -------------- SYN_REPORT ------------Event: time 1537921337.375207, type 1 (EV_KEY), code 116 (KEY_POWER), value 1Event: time 1537921337.375207, -------------- SYN_REPORT ------------Event: time 1537921337.535204, type 1 (EV_KEY), code 116 (KEY_POWER), value 0Event: time 1537921337.535204, -------------- SYN_REPORT ------------测试结果   当发生按键时,evtest 会输出相应的信息。 2.11  串口测试(UART2)  【测试说明】:采用串口自发自收的方式进行测试   【接口标识】:UART2/3/4/5_TTL   【系统设备】:/dev/ttymxc1 测试操作   短接串口2的发送发接收管脚(J1的7和9号管脚)   执行测试指令:=====> 输入指令:/my-demo/gcc-linaro-5.3-arm/serial_test.out /dev/ttymxc1 "www.myzr.com.cn"   =====> 输出信息:Starting send data...finishStarting receive data:ASCII: 0x77      Character: w ASCII: 0x77      Character: w ASCII: 0x77      Character: w ASCII: 0x2e      Character: . ASCII: 0x6d      Character: m ASCII: 0x79      Character: y ASCII: 0x7a      Character: z ASCII: 0x72      Character: r ASCII: 0x2e      Character: . ASCII: 0x63      Character: c ASCII: 0x6f      Character: o ASCII: 0x6d      Character: m ASCII: 0x2e      Character: . ASCII: 0x63      Character: c ASCII: 0x6e      Character: n ASCII: 0x0       Character:   测试结果   执行测试指令后,应用输出如上类似信息即正常。 2.12  串口测试(UART3)  【测试说明】:采用串口自发自收的方式进行测试   【接口标识】:UART2/3/4/5_TTL   【系统设备】:/dev/ttymxc2 测试操作   短接串口3的发送发接收管脚(J1的11和13号管脚)   执行测试指令:=====> 输入指令:/my-demo/gcc-linaro-5.3-arm/serial_test.out /dev/ttymxc2 "www.myzr.com.cn"   =====> 输出信息:Starting send data...finishStarting receive data:ASCII: 0x77      Character: w ASCII: 0x77      Character: w ASCII: 0x77      Character: w ASCII: 0x2e      Character: . ASCII: 0x6d      Character: m ASCII: 0x79      Character: y ASCII: 0x7a      Character: z ASCII: 0x72      Character: r ASCII: 0x2e      Character: . ASCII: 0x63      Character: c ASCII: 0x6f      Character: o ASCII: 0x6d      Character: m ASCII: 0x2e      Character: . ASCII: 0x63      Character: c ASCII: 0x6e      Character: n ASCII: 0x0       Character:   测试结果   执行测试指令后,应用输出如上类似信息即正常。 2.13  串口测试(UART4)  【测试说明】:采用串口自发自收的方式进行测试   【接口标识】:UART2/3/4/5_TTL   【系统设备】:/dev/ttymxc3 测试操作   短接串口4的发送发接收管脚(J1的15和17号管脚)   执行测试指令:=====> 输入指令:/my-demo/gcc-linaro-5.3-arm/serial_test.out /dev/ttymxc3 "www.myzr.com.cn"   =====> 输出信息:Starting send data...finishStarting receive data:ASCII: 0x77      Character: w ASCII: 0x77      Character: w ASCII: 0x77      Character: w ASCII: 0x2e      Character: . ASCII: 0x6d      Character: m ASCII: 0x79      Character: y ASCII: 0x7a      Character: z ASCII: 0x72      Character: r ASCII: 0x2e      Character: . ASCII: 0x63      Character: c ASCII: 0x6f      Character: o ASCII: 0x6d      Character: m ASCII: 0x2e      Character: . ASCII: 0x63      Character: c ASCII: 0x6e      Character: n ASCII: 0x0       Character:   测试结果   执行测试指令后,应用输出如上类似信息即正常。 2.14  串口测试(UART5)  【测试说明】:采用串口自发自收的方式进行测试   【接口标识】:UART2/3/4/5_TTL   【系统设备】:/dev/ttymxc4 测试操作   短接串口5的发送发接收管脚(J1的16和18号管脚)   执行测试指令:=====> 输入指令:/my-demo/gcc-linaro-5.3-arm/serial_test.out /dev/ttymxc4 "www.myzr.com.cn"   =====> 输出信息:Starting send data...finishStarting receive data:ASCII: 0x77      Character: w ASCII: 0x77      Character: w ASCII: 0x77      Character: w ASCII: 0x2e      Character: . ASCII: 0x6d      Character: m ASCII: 0x79      Character: y ASCII: 0x7a      Character: z ASCII: 0x72      Character: r ASCII: 0x2e      Character: . ASCII: 0x63      Character: c ASCII: 0x6f      Character: o ASCII: 0x6d      Character: m ASCII: 0x2e      Character: . ASCII: 0x63      Character: c ASCII: 0x6e      Character: n ASCII: 0x0       Character:   测试结果   执行测试指令后,应用输出如上类似信息即正常。 2.15  CAN 测试  【测试说明】:采用CAN1发送,CAN0接收的方式。   【接口标识】:CAN1,CAN2   【系统接口】:can0,can1 测试准备   将CAN1的CAN_L与CAN2的CAN_L连接。   将CAN1的CAN_H与CAN2的CAN_H连接。 测试命令   配置 CAN1(can0):=====> 输入指令:ip link set can0 up type can bitrate 125000  配置 CAN2(can1):=====> 输入指令:ip link set can1 up type can bitrate 125000  CAN1 (can0) 后台接收:=====> 输入指令:candump can0 &    CAN2(can1)发送数据:=====> 输入指令:cansend can1 1F334455#1122334455667788 =====> 输出信息:can0  1F334455   [8]  11 22 33 44 55 66 77 88测试结果   CAN2(can1)发送数据后,CAN1(can0)会把接收到的数据输出,如:11 22 33 44 55 66 77 88 【下章节为明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(3)】

  • 发表了主题帖: 明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(1)

    明远智睿MY-IMX6-EK200 Linux-4.1.15 测试手册 v2.0 1  第一部分 测试说明1.1  测试环境【开发板型号】:MY-IMX6-EK200-6Q-1G   【内核版本】:Linux-4.1.15   【文件系统】:L4115-fsl-image-qt5-myimx6a9.tar.bz2   【工具版本】:MfgTool-MYIMX6A9-L4.1.15-Patch.svn297.rar   说明:为保证测试无误,建议使用的烧录工具版本应不低于svn297 1.2  接口标识图 2  第二部分 接口测试2.1  网口一测试  【测试说明】:采用开发板向PC发送ICMP报文的方式进行测试   【接口标识】:10M/100M Ethernet-1   【系统接口】:eth0 测试操作   配置电脑有线网卡IP为 192.168.137.99。   把开发板的这个网口用网线跟电脑网口连接起来。   配置开发板网口:=====> 输入指令:ifconfig eth1 downifconfig eth0 192.168.137.81  测试网口:=====> 输入指令:ping 192.168.137.99 -c 2 -w 4 =====> 输出信息:PING 192.168.137.99 (192.168.137.99) 56(84) bytes of data.64 bytes from 192.168.137.99: icmp_seq=1 ttl=128 time=0.570 ms64 bytes from 192.168.137.99: icmp_seq=2 ttl=128 time=0.365 ms --- 192.168.137.99 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 999msrtt min/avg/max/mdev = 0.365/0.467/0.570/0.104 ms 测试结果   “0% packet loss”表示测试通过。 2.2  网口二测试  【测试说明】:采用开发板向PC发送ICMP报文的方式进行测试   【接口标识】:10M/100M Ethernet-2   【系统接口】:eth1 测试操作   配置电脑有线网卡IP为 192.168.137.99。   把开发板的这个网口用网线跟电脑网口连接起来。   配置开发板网口:=====> 输入指令:ifconfig eth0 downifconfig eth1 192.168.137.82   测试网口:=====> 输入指令:ping 192.168.137.99 -c 2 -w 4 =====> 输出信息:PING 192.168.137.99 (192.168.137.99) 56(84) bytes of data.64 bytes from 192.168.137.99: icmp_seq=1 ttl=128 time=1.38 ms64 bytes from 192.168.137.99: icmp_seq=2 ttl=128 time=0.627 ms --- 192.168.137.99 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1001msrtt min/avg/max/mdev = 0.627/1.003/1.380/0.377 ms测试结果   “0% packet loss”表示测试通过。 2.3  USB接口测试  【测试说明】:采用插拔USB存储设备(U盘)的方式进行测试   【接口标识】:USB HOST   【系统接口】:/sys/bus/usb/ 测试方法   将USB设备插入底板USB接口,系统会输出类似如下信息:usb 1-1.2: new high-speed USB device number 5 using ci_hdrcusb-storage 1-1.2:1.0: USB Mass Storage device detectedscsi host1: usb-storage 1-1.2:1.0scsi 1:0:0:0: Direct-Access     Mass     Storage Device   1.00 PQ: 0 ANSI: 0 CCSsd 1:0:0:0: Attached scsi generic sg0 type 0sd 1:0:0:0: [sda] 60776448 512-byte logical blocks: (31.1 GB/28.9 GiB)sd 1:0:0:0: [sda] Write Protect is offsd 1:0:0:0: [sda] No Caching mode page foundsd 1:0:0:0: [sda] Assuming drive cache: write through sda: sda1sd 1:0:0:0: [sda] Attached SCSI removable disk  将USB设备从底板拔出,系统会输出类似如下信息:usb 1-1.2: USB disconnect, device number 5测试结果   USB存储设备插拔时系统输出如上类似信息即表示正常。 2.4  SD接口测试  【测试说明】:采用插入并识别TF卡的方式进行测试   【接口标识】:SD3   【系统接口】:/sys/bus/mmc/ 测试方法   把SD卡插入到这个接口:=====> 输出信息:mmc2: new high speed SDHC card at address 1234mmcblk2: mmc2:1234 SA32G 28.9 GiB mmcblk2: p1  弹出SD卡:=====> 输出信息:mmc2: card 1234 removed测试结果   SD存储设备插拔时系统输出如上类似信息即表示正常。 2.5  标准GPIO测试  【测试说明】:控制GPIO的输出电平   【接口标识】:GPIO/SD2   【系统接口】:/sys/class/gpio/ MY-IMX6-EK200可用的IO  J4:3(15),  J4:5(14),  J4:7(10), J4:9(13),   J4:11(12),  J4:13(11)    J4:4(LED), J4:6(LED), J4:8(20), J4:10(LED), J4:12(LED), J4:14(NC)  GPIO输出低电平测试   配置J4:8为输出低电平的操作方法:=====> 输入指令:OUT_IO_OUT_NUM=20echo ${OUT_IO_OUT_NUM} > /sys/class/gpio/export    echo "out" > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/direction  echo 0 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value   用万用表测试管脚J4:8,电压为0V,则表示OK GPIO输出高电平测试   配置J4:7为输出高电平的操作方法:=====> 输入指令:OUT_IO_OUT_NUM=10 echo ${OUT_IO_OUT_NUM} > /sys/class/gpio/exportecho "out" > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/direction  echo 1 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value  用万用表测试管脚J4:7,电压为3.3V,则表示OK 其它   控制 GPIO 输出低电平的指令:=====> 输入指令:echo 0 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value     控制 GPIO 输出高电平的指令:=====> 输入指令:echo 1 > /sys/class/gpio/gpio${OUT_IO_OUT_NUM}/value 2.6  GPIO-LED测试(leds-heartbeat)  【测试说明】:观察 leds-heartbeat 的 LED   【接口标识】:GPIO-LED   【系统接口】:/sys/class/leds/leds-heartbeat/ 测试操作   无需任何操作 测试结果   系统启动后可以看到 D7 在有规律的闪烁,即表示应该功能正常。 2.7  GPIO-LED测试(leds-mmc3)  【测试说明】:往 eMMC 写数据,同时观察 leds-mmc3 的 LED   【接口标识】:GPIO-LED   【系统接口】:/sys/class/leds/leds-mmc3/ 测试操作=====> 输入指令:dd if=/dev/zero of=/home/root/test bs=1024k count=128测试结果   可以看到往eMMC写数据时,D8亮了。 2.8  GPIO-LED测试(leds-timer)  【测试说明】:观察 leds-timer 的 LED   【测试说明】:控制 leds-timer(LED)的亮灭时间   【接口标识】:GPIO-LED   【系统接口】:/sys/class/leds/leds-timer/ 测试操作   更改 led-timer (D9) 灭的时间=====> 输入指令:echo 1000 > /sys/class/leds/leds-timer/delay_off    更改 led-timer (D9) 亮的时间=====> 输入指令:echo 2000 > /sys/class/leds/leds-timer/delay_on  测试结果   执行指令后,观察发现对应LED的亮灭的时间比例基本是2:1。 2.9  GPIO-LED测试(leds-gpio)  【测试说明】:控制 ledss-gpio(LED)的亮灭时间   【接口标识】:LED   【系统接口】:/sys/class/leds/leds-gpio/ 测试操作   使 D10 灭:=====> 输入指令:echo 0 > /sys/class/leds/leds-gpio/brightness    使 D10 亮:=====> 输入指令:echo 1 > /sys/class/leds/leds-gpio/brightness  测试结果   执行指令后,发现对应LED的状态随指令的功能进行改变。 【下章节为明远智睿MY-IMX6-EK200 Linux-4.1.15测试手册v2.0(2)】

  • 2019-03-12
  • 发表了主题帖: 明远智睿MY-IMX28 Linux-3.14.54 编译手册(4)

    【接上一章节明远智睿MY-IMX28 Linux-3.14.54 编译手册(3)】 10.2  ssh登录10.2.1  以太网登录插上网线和电源,开机后,差不多10秒后,可以软件SecureCRT登录,板子默认以太网的IP为192.168.3.104,你可以设置电脑的IP为192.168.3.110,然后配置SecureCRT,输入用户名是root,密码myzr。如下图: 输入完后,点击”OK“就登录完成。 10.2.2  USB登录(USB可识别成网口)插上MINI USB线,开机后,差不多10秒后,可以软件SecureCRT登录,板子默认USB的IP为192.168.4.104,你可以设置电脑的IP为192.168.4.110,然后配置SecureCRT,输入用户名是root,密码myzr。如下图: 输入完后,点击”OK“就登录完成。 11  测试11.1  USB测试直接插上U盘,挂载后可看到U盘的内容。(不是QT系统,会自动挂载) 11.2  SD卡测试直接插上SD卡,挂载后可看到SD卡的内容。(不是QT系统,会自动挂载) 11.3  以太网测试插上网线,直接用ping命令测试eth0和eth1网口。默认eth0的IP为192.168.3.104,我设置eth1为192.168.3.105。如下: 11.4  uart串口测试串口uat0的设备ttyAPP0,串口uat3的设备ttyAPP3。测试时,请短接发管脚。 11.5  gpio测试GPIO_2_26,GPIO_2_25和GPIO_2_27已经在驱动配置为GPIO功能了,下面以管脚GPIO_2_26为例,计算GPIO_2_26的管脚号为2*32+26=90,测试如下: 11.6  spi测试SPI接口为半双工模式,这里你只测发,通过示波器可观察到波形。方法一只发送0x55和0x75;方法二是发送字符串”myzr“。 11.7  watdog测试“看门狗”,全称Watchdog timer,是一个在软件出错的时候可以复位计算机系统的硬件定时器。通常一个用户空间守护进程会在正常的时间间隔内通过/dev/watchdog 特殊设备文件来通知内核的Watchdog驱动,用户空间一切正常。如果用户空间出现问题(如RAM 错误,内核BUG 等),则通知将会停止,然后硬件Watchdog 将在超时后复位系统。 测试程序中打开/dev/watchdog 设备文件,启动了Watchdog,每过一秒钟喂狗一次,系统不会重启。 测试程序中打开了/dev/watchdog 设备文件,启动Watchdog,程序进入循环状态,由于没有喂狗,30 秒后系统复位。  </div>

  • 2019-03-11
  • 发表了主题帖: 明远智睿MY-IMX28 Linux-3.14.54 编译手册(3)

    本帖最后由 明远智睿嵌入式 于 2019-3-11 16:38 编辑 【接上一章节明远智睿MY-IMX28 Linux-3.14.54 编译手册(2)】 7  应用程序编译 7.1  Linux应用程序编译 7.1.1  编写应用程序进入工作目录$ cd ~/my-imx28/01_application/ 编写源代码$ vim hello.c 写入以下代码并保存 include <stdio.h> int main(int argc, char **argv) {   printf("Hello, MYZR!\n");   return; } 查看代码 $ cat hello.c 7.1.2  编译应用程序配置环境变量$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env 编译 $ ${CROSS_COMPILE}gcc hello.c -o hello.out 注意:上面的命令有包含“$”号,即“${CROSS_COMPILE}gcc”,是引用我们source时产生的环境变量。 目标文件 $ file hello.out 可以看到目标文件 hello.out 的属性。 8  文件系统 8.1  文件系统rootfs.tar.bz2用以下的方式增加自己的应用:(把MY-IMX28_Born_Tool\Profiles\MX28 Linux Update\OS Firmware\files\image-linux-31454/rootfs.tar.bz2复制到“~/my-imx28/04_image/”目录下)。 8.2  文件系统filesystem.ubifs复制mkfs.ubifs,ubinize到电脑的“/usr/bin”目录下(如果电脑有这两个应用就不需要复制了);复制build_rootfs和ubinize.cfg到“~/my-imx28/04_image/”目录。 9  烧写方式至此,我们在“~/my-imx28/02_source/”得到了除文件系统以外的一套烧录文件。包括“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2”。 9.1  使用MFGTOOL烧写把文件“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“rootfs.tar.bz2复制到“MY-IMX28_Born_Tool\Profiles\MX28 Linux Update\OS Firmware\files\image-linux-31454”目录下。按住REC按键,插上MINI USB线和电源线,接着打开MfgTool.exe,点击“扫描设备”,检测到HID设备时,松开REC按键,如下所示: 点击菜单的“Options”,然后在选项“Profiles”选择“MY-IMX28-3.14.54 NAND with uboot”,接着点击“确定”,最后点击“开始”。 烧写成功后,点击“停止”就OK了。 注意:如果你用的文件系统是rootfs-qt.tar.bz2,请选择“QT-MY-IMX28-3.14.54 NAND with uboot”烧写镜像。 9.2  使用网络烧写 9.2.1  搭建TFTP (ubuntu系统)(1) Setup tftp server files (下载并安装tftp)   $ sudo apt-get install tftpd tftp openbsd-inetd (2) make a tftp directory (新建tftp目录和改变其属性) Here we make /home/myzr/tftpt be a tftp directory.   $ mkdir /home/myzr/tftp   $ chmod 777 /home/myzr/tftp (3) Open /etc/inetd.conf and edit it (修改配置文件的tftp目录)   $ sudo gedit /etc/inetd.conf Coment this line :tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /srv/tftpAdd new line: tftp dgram udp wait nobody /usr/sbin/tcpd /usr/sbin/in.tftpd /home/myzr/tftp (4)Restarting tftp service (重启tftp)   $ sudo /etc/init.d/openbsd-inetd restart 9.2.2  搭建NFS (网络烧写不需要用到nfs)(1) Install NFS server package (下载并安装nfs)   $ sudo apt-get install nfs-kernel-server (2) Create NFS directory:/home/myzr/nfsroot (新建nfs目录)   $ mkdir /home/myzr/nfsroot (3) Configure mounted directory and authority (修改配置文件的nfs目录)   $ sudo gedit /etc/exports Add the following line at the end of the file: /home/myzr/nfsroot *(rw,sync,no_root_squash) (4) Restart the NFS service (重启nfs)   $ sudo /etc/init.d/portmap restart   $ sudo /etc/init.d/nfs-kernel-server restart 9.2.3  tftp下载(1) 把“u-boot.sb”、“imx28-evk.dtb”、“zImage”、“filesystem.ubifs”复制到“/home/myzr/tftp”目录下。 (2) 设置环境变量(板子和电脑网线直连) $ setenv ipaddr 192.168.3.104 (板子IP) $ setenv serverip 192.168.3.110 (电脑IP) (3) 烧写 $ run update_nand_kernel (烧写zImage) $ run update_nand_fdt (烧写fdt) $ run update_nand_filesystem (烧写文件系统) 10  登录方式 10.1  串口登录插上USB转串口线和电源,开机后,差不多10秒后,在终端上敲回车键可以进入系统。 【下章节为明远智睿MY-IMX28 Linux-3.14.54 编译手册(4)】

  • 2019-03-08
  • 发表了主题帖: 明远智睿MY-IMX28 Linux-3.14.54 编译手册(2)

    本帖最后由 明远智睿嵌入式 于 2019-3-8 11:55 编辑 【接上一章节明远智睿MY-IMX28 Linux-3.14.54 编译手册(1)】 5.2  编译 5.2.1  使编译配置文件生效$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env 5.2.2  进入u-boot源码目录$ cd ~/my-imx28/02_source/u-boot-2015.04 5.2.3  清除u-boot临时文件$ make distclean 5.2.4  配置u-boot MY-IMX28-EVK配置示例:$ make mx28_evk_config 5.2.5  执行编译$ make u-boot.sb 提示:这里为了提高编译速度,在make后面加了“-j4”。这里编译的Linux主机是双核4线程的,所以“-j”后面用了4,也就是采用4线程编译。“-j”后面的数字可以根据系统资源分配,但是不应该超过编译主机最大支持的线程数。 编译完成提示:u-boot编译过程大概需要一、两分钟时间。 5.3  目标文件编译文件编译完成后通过ls命令即可看到编译得到的文件 u-boot.sb $ ls 目标文件MY-IMX28系列评估板的u-boot配置对应的目标文件名见下表: 6  编译内核 6.1  准备编译 6.1.1  复制源码包到开发主机中将下载的“linux源码”复制到Linux开发主机的“~/my-imx28/02_source”。 这一步自己采取相应的方式完成。 6.1.2  解压linux源码包$ cd ~/my-imx28/02_source/ $ tar jxf linux-3.14.54.tar.bz2 6.2  内核编译配置 6.2.1  使编译配置文件生效$ source ~/my-imx28/03_tools/gcc-4.4.4-glibc-2.11.1-multilib-env 6.2.2  清除内核临时文件进入linux源码目录$ cd ~/my-imx28/02_source/linux-3.14.54 清除临时文件$ make distclean 6.2.3  内核配置$ cp .mx28_config .config 6.3  编译内核执行编译 $ make zImage -j4 编译完成 目标文件 arch/arm/boot/uImage即为编译得到的内核文件,使用ls命令可查看文件信息。 $ ls arch/arm/boot/uImage -la 6.4  编译设备树评估板型号规格与设备树文件对应关系见下表: 以MY-IMX28-EVK为例$ make imx28-evk.dtb 目标文件使用ls命令可查看编译得到的目标设备树文件信息: $ ls arch/arm/boot/dts/*.dtb 6.5  编译模块编译模块命令 $ make modules 安装模块到指定目录$ make modules_install INSTALL_MOD_PATH=./modules 打包模块文件$ cd modules $ tar cjf ../modules.tar.bz2 * 【下章节为明远智睿MY-IMX28 Linux-3.14.54 编译手册(3)】

  • 2019-03-06
  • 发表了主题帖: 明远智睿MY-SAMA5 Linux-3.18 编译手册(3)

    【接上一章节明远智睿MY-SAMA5 Linux-3.18 编译手册(2)】 5.2.3  编译内核模块1)执行内核模块编译命令 $ make ARCH=arm modules 2)内核模块编译完成 3)安装内核模块到指定目录 $ make ARCH=arm modules_install INSTALL_MOD_PATH=./modules 4)打包内核模块 $ tar cjf modules_mysama5ek200.tar.bz2 modules/* 5)模块包 $ ls modules_mysama5ek200.tar.bz2 6  文件系统编译6.1  注意及说明a) 原始编译的过程中的下载量大约4G。(提示:可以使用我们下载好的一些文件,以减少下载量,节约时间,在7.4中会说到)。 b) 编译主机的网络连接最好使用能访问www.fackbook.com 的网络,不然可能会受到境内防火墙的限制而无法下载编译需要的软件包。 c) 初次编译需要的时间根据网络状态及编译主机的配置需要2小时到无限时间(经粗略统计除去下载时间,在16核CPU、16G内存的主机上编译QT5系统用了大约100分钟。) 客户请根据实际情况决定是否自行编译文件系统或使用我们提供的文件系统。 6.2  编译前的准备6.2.1  准备Yocto编译环境说明,Yocto编译依赖一些软件包,所以需要在开发主机上进行安装。 $ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat $ sudo apt-get install libsdl1.2-dev xterm sed cvs subversion coreutils texi2html docbook-utils python-pysqlite2 help2man make gcc g++ desktop-file-utils libgl1-mesa-dev libglu1-mesa-dev mercurial autoconf automake groff curl lzop asciidoc $ sudo apt-get install uboot-mkimage 6.2.2  准备源码1)下载源码 源码包文件名:atmel_fido.tar.bz2 2)创建yocto工作目录 3)将源码复制到开发主机 这一步自己采取合适的方式将源码复制到yocto工作目录(即:/home/myzr/yocto)。也可以参照“2.3 常用功能演示”。 4)解压源码包进入用户主目录$ cd ~/yocto 执行解压命令$ tar jxf atmel_fido.tar.bz2 6.2.3  准备软件包1)创建“/opt/yocto”目录用于存放软件包 $ sudo mkdir /opt/yocto $ sudo chmod 777 /opt/yocto 2)下载软件包 在网盘中下载yocto的软件包。 软件包相对路径:yocto/downloads,将downloads下载到Windows。 3)将软件包复制到开发主机 将下载好的“downloads”目录复制到开发主机的“/opt/yocto”。 6.3  编译文件系统6.3.1  编译前的配置1)准备编译配置文件 文件目录:conf。下载conf目录到Windows。 2)进入poky目录 $ cd ~/yocto/atmel_fido/poky/ $ source oe-init-build-env build-atmel 3)初始化编译目录 $ source oe-init-build-env build-atmel 4)复制编译配置文件到编译目录 将 conf 目录复制到 /home/myzr/yocto/poky/build-atmel 。 6.3.2  编译QT5文件系统$ bitbake atmel-qt5-demo-image 提示:整个编译过程除去下载时间,在16核CPU、16G内存的主机上需要1小时左右。 目标文件在./tmp/deploy/images/sama5d3xek/目录下可以找到我们编译生成的目标文件。 6.3.3  编译QT5交叉编译工具$ bitbake meta-toolchain-qt5 目标文件 在./tmp/deploy/images/sama5d3xek/目录下可以找到我们编译生成的目标文件。 </div>

  • 发表了主题帖: MY-I.MX6-DEMOAndroid4.2.2环境搭建

    1  安装ubuntu12.04(如果使用下载明远智睿的虚拟机,请直接跳到 下载源码并解压 这一节) 在这里建议用户使用64bit的ubuntu12.04的操作系统,已经真机编译验证过。 2  安装JDK1.6 SE登陆htttp://www。myzr。Com。cn的下载专区,下载jdk-6u45-linux-x64.bin文件 $ cd /usr $ sudo mkdir java $ cd java $ sudo cp ~ /jdk-6u45-linux-x64.bin ./ $ sudo chmod 777 ./jdk-6u45-linux-x64.bin $ sudo ./jdk-6u45-linux-x64.bin $ sudo gedit /etc/profile 增加以下环境变量 export JAVA_HOME=/usr/java/jdk1.6.0_45 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin $ source /etc/profile $ java –version (看到版本为1.6.0_45就表示成功) 3  安装编译Android系统所需要的库$ sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so $ sudo apt-get install gcc:i386 linux-libc-dev:i386 $ sudo apt-get install uuid uuid-dev $ sudo apt-get install zlib1g-dev liblz-dev $ sudo apt-get install liblzo2-2 liblzo2-dev $ sudo apt-get install uuid-dev:i386 $ sudo apt-get install liblzo2-dev:i386 $ sudo ln -sf /lib/i386-linux-gnu/libuuid.so.1 /usr/lib/libuuid.so 4  下载源码并解压源码4.1  下载源码登陆htttp://www。myzr。Com。cn下载专区下载Android4.2源码 Android4.2的源码包:myzr_android4_2_2_1_1_0.tar.bz2 4.2  解压源码$ mkdir ~/myandroid $ cd ~ $ tar -jxvf myzr_android4_2_2_1_1_0.tar.bz2 –C ~/myandroid 4.3  编译源码(Android系统)4.3.1  设置环境变量$ export ARCH=arm $ export CROSS_COMPILE=~/myandroid/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/arm-eabi- $ export PATH=~/myandroid/bootable/bootloader/uboot-imx/tools:$PATH 4.3.2  编译uboot$ cd ~/myandroid/bootable/bootloader/uboot-imx $ make distclean $ make mx6q_sabresd_android_config $ make 4.3.3  编译kernel$ cd ~/myandroid/kernel_imx $ make imx6_android_defconfig $ make uImage 4.3.4  编译bootimg (uImagel和ramdisk)$ cd ~/myandroid $ source build/envsetup.sh $ lunch sabresd_6dq-eng (此为调试版本,发布版本改成lunch sabresd_6dq-usr) $ make bootimage 4.3.5  编译system$ cd ~/myandroid $ source build/envsetup.sh $ lunch sabresd_6dq-eng (此为调试版本,发布版本改成lunch sabresd_6dq-usr) $ make

  • 2019-03-04
  • 发表了主题帖: 明远智睿MY-SAMA5 Linux-3.18 编译手册(2)

    【接上一章节明远智睿MY-SAMA5 Linux-3.18 编译手册(1)】 3.3  目标文件1)目标文件 编译完成后会在源码的binaries目录下产生我们需要的目标文件。 通过ls命令可以看到,其中mysama5ek200-dataflashboot-uboot-3.7.2.bin 即是我们需要的文件。 $ ls binaries/ 2)重命令目标文件 我们在烧录的时候需要使用到这些目标文件。为了烧录的方便,我们需要将目标文件修改为我们需要的文件名,即bootstrap-mysama5ek200.*。 $ cd binaries/ $ rename 's/mysama5ek200-dataflashboot-uboot-3.7.2/bootstrap-mysama5ek200/' * $ ls -1 3)保存目标文件 将bootstrap-mysama5ek200.* 保存。 4  u-boot编译4.1  准备源码1)下载源码 文件名:u-boot-at91-linux4sam_4.7.tar.bz2 U-Boot在Atmel AT91 SoC上作为第三阶段引导加载程序。它负责配置主要接口,并引导Linux系统。 2)将源码复制到工作目录 这一步自己采取合适的方式将u-boot源码复制到“~/my-sama5/02_source”。也可以参照“2.3 常用功能演示”。 3)解压源码进入工作目录$ cd ~/my-sama5/02_source/ 执行解压命令$ tar jxf u-boot-at91-linux4sam_4.7.tar.bz2 4.2  编译1)进入u-boot源码目录 $ cd ~/my-sama5/02_source/u-boot-at91-linux4sam_4.7/ 2)使编译配置文件生效 $ source ~/my-sama5/03_tools/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.config 3)清除代码中可能存在的临时文件 $ make distclean 4)生成配置文件 $ make mysama5ek200_defconfig 5)执行编译 $ make –j4 6)编译完成 4.3  目标文件编译完成后会在源码的目录下产生我们需要的目标文件。 通过ls命令可以看到。其中u-boot.bin 即是我们需要的文件。 $ ls u-boot* -1 2)重命令目标文件 我们在烧录的时候需要使用到这些目标文件。为了烧录的方便,我们需要将目标文件修改为我们需要的文件名,即uboot-mysama5ek200.bin。 $ mv u-boot.bin uboot-mysama5ek200.bin $ ls uboot-mysama5ek200.bin 3)保存目标文件 将uboot-mysama5ek200.bin 保存。 5  内核编译5.1  准备源码1)下载源码 文件名:linux-at91-linux4sam_4.7.tar.bz2 2)将源码复制到工作目录 这一步自己采取合适的方式将内核源码复制到“~/my-sama5/02_source”。也可以参照“2.3 常用功能演示”。 3)解压源码进入工作目录$ cd ~/my-sama5/02_source/ 执行解压命令$ tar jxf linux-at91-linux4sam_4.7.tar.bz2 5.2  编译1)进入内核源码目录 $ cd ~/my-sama5/02_source/linux-at91-linux4sam_4.7/ 2)使编译配置文件生效 $ source ~/my-sama5/03_tools/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.config 3)清除代码中可能存在的临时文件 $ make distclean 5.2.1  编译内核文件1)生成内核配置文件 $ make ARCH=arm mysama5ek200_defconfig 2)执行内核文件编译命令 $ make -j4 ARCH=arm zImage 3)内核文件编译完成 4)内核目标文件 $ ls arch/arm/boot/zImage 5.2.2  编译设备树文件1)执行设备树文件编译命令 $ make ARCH=arm mysama5ek200-d36.dtb 2)设备树目标文件 $ ls arch/arm/boot/dts/mysama5ek200-d36.dtb 【下章节为明远智睿MY-SAMA5 Linux-3.18 编译手册(3)】

  • 2019-01-24
  • 发表了主题帖: 明远智睿MY-IMX6-EK200 Android-5.1.1测试手册

    1  适用范围 2  测试项目2.1  一.uart测试测试之前需要短接串口的收发管脚,不同的开发板短接的管脚有所不同,对应关系如下图: 测试方法:1)选择要测试的串口,设置好波特率 2)点击打开设备按钮 3)输入要发送的内容 4)点击传送数据按钮 5)点击关闭设备按钮 2.2  二.Gpio测试 测试方法:1)输入:输入一个gpio设置为输入管脚 2)输出:输入一个gpio设置为输出管脚 3)点击高/低电平按钮设置电平 4)用万用表测试输出管脚的电平 2.3  三.Spi测试测试之前需要短接 SPI 的管脚,不同的开发板短接的管脚有所不同,对应关系如下: 测试方法:1)点击打开设备按钮 2)输入要发送的内容 3)点击传送数据按钮 4)点击关闭设备按钮 2.4  四.i2c测试 测试方法:1)选择要测试的i2c总线 2)点击读取i2c按钮,读取总线上的设备 2.5  五.can测试测试之前需要连接 CAN 的管脚,将 CAN1 的 CAN_L 和 CAN2 的 CAN_L 连接,将 CAN1 的 CAN_H 和 CAN2 的 CAN_H 连接。 测试方法:1)点击打开设备 2)输入要发送的内容,长度不超过8 3)点击传送数据 4)点击关闭设备 2.6  六.Usb测试查看usb跟sd卡里的内容 2.7  七.media测试测试前要自备视频 测试方法:1)选择一个视频 2)播放视频 2.8  八.Wifi测试 测试方法:1)点击wifi开关打开wifi,等待wifi搜索结果 2)点击要连接的wifi 3)输入密码,点击连接按钮

  • 2019-01-18
  • 发表了主题帖: 明远智睿MY-IMX6-EK200 Linux-4.1.15 测试手册(1)

    本帖最后由 明远智睿嵌入式 于 2019-1-18 15:38 编辑 明远智睿MY-IMX6-EK200 Linux-4.1.15 测试手册(1) 1  测试环境开发板型号:MYIMX6EK200-6Q-2G-16G内核版本:Linux-4.1.15文件系统:L4115-fsl-image-qt5-myimx6a9.tar.bz2 2  网口测试 2.1  ETH0关闭 ETH1# ifconfig eth1 down 配置 ETH0# ifconfig eth0 192.168.137.81   使用 ping 进行测试# ping 192.168.137.99 -c 2 -w 4 PING 192.168.137.99 (192.168.137.99) 56(84) bytes of data.64 bytes from 192.168.137.99: icmp_seq=1 ttl=128 time=0.811 ms64 bytes from 192.168.137.99: icmp_seq=2 ttl=128 time=0.324 ms --- 192.168.137.99 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 999msrtt min/avg/max/mdev = 0.324/0.567/0.811/0.244 ms 2.2  ETH1 测试关闭 ETH0# ifconfig eth0 down   配置 ETH0# ifconfig eth1 192.168.137.82   使用 ping 进行测试# ping 192.168.137.99 -c 2 -w 4   PING 192.168.137.99 (192.168.137.99) 56(84) bytes of data.64 bytes from 192.168.137.99: icmp_seq=1 ttl=128 time=1.54 ms64 bytes from 192.168.137.99: icmp_seq=2 ttl=128 time=4.03 ms --- 192.168.137.99 ping statistics ---2 packets transmitted, 2 received, 0% packet loss, time 1001msrtt min/avg/max/mdev = 1.546/2.792/4.039/1.247 ms 3  USB 测试插入U盘usb 1-1.2: new high-speed USB device number 5 using ci_hdrcusb-storage 1-1.2:1.0: USB Mass Storage device detectedscsi host1: usb-storage 1-1.2:1.0scsi 1:0:0:0: Direct-Access     TOSHIBA  TransMemory      1.00 PQ: 0 ANSI: 4sd 1:0:0:0: [sda] 15148608 512-byte logical blocks: (7.75 GB/7.22 GiB)sd 1:0:0:0: [sda] Write Protect is offsd 1:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA sda: sda4sd 1:0:0:0: [sda] Attached SCSI removable disk 拔出U盘usb 1-1.2: USB disconnect, device number 5 4  SD卡测试插入SD卡mmcblk2: mmc2:1234 SA02G 1.83 GiB mmcblk2: 弹出SD卡mmc2: card 1234 removed 5  标准 GPIO 测试EIM_A25__GPIO5_IO02 J7:4 EIM_D23__GPIO3_IO23 J1:12 EIM_D28__GPIO3_IO28 J1:8 EIM_D29__GPIO3_IO29 J1:10 EIM_D30__GPIO3_IO30 J21:12 SD1_CLK__GPIO1_IO20 J4:8 SD1_DAT0__GPIO1_IO16 J14:18 SD2_CMD__GPIO1_IO11 J4:13 SD2_CLK__GPIO1_IO10 J4:7 SD2_DAT0__GPIO1_IO15 J4:3 SD2_DAT1__GPIO1_IO14 J4:5 SD2_DAT2__GPIO1_IO13 J4:9 SD2_DAT3__GPIO1_IO12 J4:11 SD3_DAT5__GPIO7_IO00 J21:11 GPIO_19__GPIO4_IO05 J7:3 # OUT_IO_NUMBER=85# echo ${OUT_IO_NUMBER} > /sys/class/gpio/export# echo out > /sys/class/gpio/gpio${OUT_IO_NUMBER}/direction# echo 0 > /sys/class/gpio/gpio${OUT_IO_NUMBER}/value# echo 1 > /sys/class/gpio/gpio${OUT_IO_NUMBER}/value 6  GPIO-LED 测试led-heartbeat说明:led-heartbeat 连接到 D8,系统启动后可以看到 D8 在有规律的闪烁。 led-timer说明:led-timer 连接到 D9,系统启动后可以看到 D9 在有规律的闪烁。 更改 led-timer (D9) 灭的时间# echo 1000 > /sys/class/leds/led-timer/delay_off   更改 led-timer (D9) 亮的时间# echo 2000 > /sys/class/leds/led-timer/delay_on   led-default使 led-default (D7) 灭echo 0 > /sys/class/leds/default/brightness   使 led-default (D7) 常亮echo 1 > /sys/class/leds/default/brightness   led-gpio使 led-gpio (D10) 灭echo 0 > /sys/class/leds/gpio/brightness   使 led-gpio (D10) 常亮echo 1 > /sys/class/leds/gpio/brightness   7  GPIO-KEY 测试运行 evtest 准备测试# evtest No device specified, trying to scan all of /dev/input/event*Available devices:/dev/input/event0:  WM8962 Beep Generator/dev/input/event1:  gpio-keysSelect the device event number [0-1]: 选择 gpio-keys 所对应的序号Select the device event number [0-1]: 1 Input driver version is 1.0.1Input device ID: bus 0x19 vendor 0x1 product 0x1 version 0x100Input device name: "gpio-keys"Supported events:  Event type 0 (EV_SYN)  Event type 1 (EV_KEY)    Event code 114 (KEY_VOLUMEDOWN)    Event code 115 (KEY_VOLUMEUP)    Event code 116 (KEY_POWER)Properties:Testing ... (interrupt to exit) 按动开发板上的按键Event: time 1537921332.815219, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 1Event: time 1537921332.815219, -------------- SYN_REPORT ------------Event: time 1537921332.985211, type 1 (EV_KEY), code 114 (KEY_VOLUMEDOWN), value 0Event: time 1537921332.985211, -------------- SYN_REPORT ------------Event: time 1537921335.355204, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 1Event: time 1537921335.355204, -------------- SYN_REPORT ------------Event: time 1537921335.535203, type 1 (EV_KEY), code 115 (KEY_VOLUMEUP), value 0Event: time 1537921335.535203, -------------- SYN_REPORT ------------Event: time 1537921337.375207, type 1 (EV_KEY), code 116 (KEY_POWER), value 1Event: time 1537921337.375207, -------------- SYN_REPORT ------------Event: time 1537921337.535204, type 1 (EV_KEY), code 116 (KEY_POWER), value 0Event: time 1537921337.535204, -------------- SYN_REPORT ------------ 8  串口测试8.1  UART2位置:J1:7,9设备:/dev/ttymxc1测试指令# /my-demo/linux-4.1.15/MY_SERIAL_TEST_L4115_MYIMX6A9.out /dev/ttymxc1 "www.myzr.com.cn"   Welcome to TTYtest   Send test data------www.myzr.com.cn  read char is w   read char is w   read char is w   read char is .   read char is m   read char is y   read char is z   read char is r   read char is .   read char is c   read char is o   read char is m   read char is .   read char is c   read char is n   Read Test Data finished,Read Test Data is-------www.myzr.com.cn   【下章节为明远智睿MY-IMX6-EK200 Linux-4.1.15 测试手册(2)】

  • 2019-01-17
  • 发表了主题帖: 明远智睿MY-IMX6 Linux-4.1.15 编译参考手册(3)

    【接上一章节明远智睿MY-IMX6 Linux-4.1.15 编译参考手册(2)】 4.3  编译设备树目标文件执行编译命令=====> Input:make myimx6ek140p-6y-256m-emmc.dtb =====> Output:   DTC     arch/arm/boot/dts/myimx6ek140p-6y-256m-emmc.dtb【注意】:上面 make 后面的 myimx6ek140p-6y-256m-emmc.dtb 改为与开发板型号对应的配置文件。 ********** MY-IMX6-EK140 **********myimx6ek140-6g-128m-emmc.dtb  myimx6ek140-6y-128m-emmc.dtbmyimx6ek140-6g-128m-nand.dtb  myimx6ek140-6y-128m-nand.dtbmyimx6ek140-6g-256m-emmc.dtb  myimx6ek140-6y-256m-emmc.dtbmyimx6ek140-6g-256m-nand.dtb  myimx6ek140-6y-256m-nand.dtbmyimx6ek140-6g-512m-emmc.dtb  myimx6ek140-6y-512m-emmc.dtbmyimx6ek140-6g-512m-nand.dtb  myimx6ek140-6y-512m-nand.dtb ********** MY-IMX6-EK140P **********myimx6ek140p-6g-128m-emmc.dtb  myimx6ek140p-6y-128m-emmc.dtbmyimx6ek140p-6g-128m-nand.dtb  myimx6ek140p-6y-128m-nand.dtbmyimx6ek140p-6g-256m-emmc.dtb  myimx6ek140p-6y-256m-emmc.dtbmyimx6ek140p-6g-256m-nand.dtb  myimx6ek140p-6y-256m-nand.dtbmyimx6ek140p-6g-512m-emmc.dtb  myimx6ek140p-6y-512m-emmc.dtbmyimx6ek140p-6g-512m-nand.dtb  myimx6ek140p-6y-512m-nand.dtb ********** MY-IMX6-EK200 **********myimx6ek200-6q-1g.dtb     myimx6ek200-6q-2g.dtb     myimx6ek200-6q-512m.dtb  myimx6ek200-6u-1g.dtb     myimx6ek200-6u-2g.dtb     myimx6ek200-6u-512m.dtb  myimx6ek200-6s-512m.dtb   myimx6ek200-6s-1g.dtb     myimx6ek200-6s-128m.dtb  myimx6ek200-6qp-1g.dtb    myimx6ek200-6qp-2g.dtb    myimx6ek200-6qp-512m.dtb   ********** MY-IMX6-EK314 **********myimx6ek314-6q-1g.dtb     myimx6ek314-6q-2g.dtb     myimx6ek314-6q-512m.dtb  myimx6ek314-6u-1g.dtb     myimx6ek314-6u-2g.dtb     myimx6ek314-6u-512m.dtb  myimx6ek314-6s-512m.dtb   myimx6ek314-6s-1g.dtb     myimx6ek314-6s-128m.dtb  myimx6ek314-6qp-1g.dtb    myimx6ek314-6qp-2g.dtb    myimx6ek314-6qp-512m.dtb   ********** MY-IMX6-EK336 **********myimx6ek336-6q-1g.dtb     myimx6ek336-6q-2g.dtb     myimx6ek336-6q-512m.dtb   复制设备树目标文件=====> Input:cp arch/arm/boot/dts/myimx6ek140p-6y-256m-emmc.dtb ./ 4.4  编译内核模块包执行编译=====> Input:make modules =====> Output: scripts/kconfig/conf  --silentoldconfig Kconfig  CHK     include/config/kernel.release  WRAP    arch/arm/include/generated/asm/bitsperlong.h  WRAP    arch/arm/include/generated/asm/current.h  ......  LD [M]  sound/usb/snd-usb-audio.ko  LD [M]  sound/usb/snd-usbmidi-lib.ko  LD [M]  sound/core/snd-rawmidi.ko 创建内核模块的保存目录=====> Input:mkdir modules 安装内核模块到指定目录=====> Input:make modules_install INSTALL_MOD_PATH=./modules =====> Output:   INSTALL crypto/tcrypt.ko  INSTALL drivers/dma/dmatest.ko  INSTALL drivers/i2c/algos/i2c-algo-pca.ko  ......  INSTALL sound/usb/snd-usb-audio.ko  INSTALL sound/usb/snd-usbmidi-lib.ko  DEPMOD  4.1.15-myimx6-svn368 打包内核模块文件=====> Input:tar cjf kernel-modules.tar.bz2 -C modules lib 4.5  目标文件zImage、myimx6ek*.dtb 和 kernel-modules.tar.bz2 即编译得到的目标文件,保存这三个文件 5  Linux C程序编译5.1  准备源码打开网盘到 5_MY-Demo -> MY-Linux-C-Demo,下载 hello.c 文件,并复制到虚拟机。 5.2  编译目标文件=====> Input:$CC hello.c -o hello.outNote: 如果有“未找到命令”的信息,是因为交叉编译工具链的配置没有生效,可以按前面 “交叉编译工具链安装” 中的 “source 工具链配置文件” 操作一次后再执行此步骤 5.3  运行Linux C目标程序把编译得到的 hello.out 复制到开发板上在开发板上运行Linux C目标程序=====> Input:chmod +x ./hello.out./hello.out =====> Output:MYZR Technology Co.,Ltd. Web:  http://www.myzr.com.cn/Wiki: http://wiki.myzr.com.cn/BBS:  http://bbs.myzr.com.cn/ Tel: 0756-3628023/3628021E-mail: service@myzr.com.cn 6  Linux QT5程序编译6.1  准备源码打开网盘到 5_MY-Demo,下载 MY-Linux-QT5-Demo-AboutUs-svn*.tar.bz2 文件,并复制到虚拟机。解压源码包到工作目录=====> Input:tar xf MY-Linux-QT5-Demo-AboutUs-svn*.tar.bz2-C ~/my-work/02_source/ 6.2  QT程序编译进入源码目录=====> Input:cd ~/my-work/02_source/AboutUs/ 生成Makefile文件=====> Input:qmakeNote: 如果有“未找到 'qamke' 命令”的信息,是因为交叉编译工具链的配置没有生效,可以按前面 “交叉编译工具链安装” 中的 “source 工具链配置文件” 操作一次后再执行此步骤 编译目标文件=====> Input:make =====> Output: /home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/uic widget.ui -o ui_widget.h......arm-poky-linux-gnueabi-g++  -march=armv7ve -mfpu=neon  -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/home/myzr/my-work/03_toolchain/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.1.0/sysroots/cortexa7hf-neon-poky-linux-gnueabi -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-O1 -o AboutUs main.o widget.o qrc_source.o moc_widget.o   -lQt5Widgets -lQt5Gui -lQt5Core -lGLESv2 -lEGL -lpthread 6.3  在 MY-IMX6-A9 设备上运行把编译得到的 AboutUs 复制到开发板上在开发板上运行QT5目标程序=====> Input:chmod +x ./AboutUs./AboutUs -platform eglfs 6.4  在 MY-IMX6-A7 设备上运行把编译得到的 AboutUs 复制到开发板上在开发板上运行QT5目标程序=====> Input:export DISPLAY=:0.0chmod +x AboutUs./AboutUs 6.5  运行结果可以看到开发板显示屏上输出了 MYZR 的 Logo 和一些信息。

  • 2019-01-16
  • 发表了主题帖: 明远智睿MY-IMX6 Linux-4.1.15 编译参考手册(2)

    【接上一章节明远智睿MY-IMX6 Linux-4.1.15 编译参考手册】 3  u-boot编译3.1  编译前的准备创建编译工作目录=====> Input:mkdir ~/my-work/02_source/ -p 解压源码包到工作目录=====> Input:tar xf u-boot-2016.03-svn*.tar.bz2 -C ~/my-work/02_source/ 3.2  编译u-boot目标文件进入源码目录=====> Input:cd ~/my-work/02_source/u-boot-2016.03 生成目标开发板的 .config 文件=====> Input:make myimx6ek140p-6y-256m-emmc_defconfig =====> Output:   HOSTCC  scripts/basic/fixdep  HOSTCC  scripts/kconfig/conf.o  SHIPPED scripts/kconfig/zconf.tab.c  SHIPPED scripts/kconfig/zconf.lex.c  SHIPPED scripts/kconfig/zconf.hash.c  HOSTCC  scripts/kconfig/zconf.tab.o  HOSTLD  scripts/kconfig/conf## configuration written to .config#【注意】:上面 make 后面的 myimx6ek140p-6y-256m-emmc_defconfig 改为与开发板型号对应的配置文件。 ********** MY-IMX6-EK140 **********myimx6ek140-6g-128m-emmc_defconfig  myimx6ek140-6y-128m-emmc_defconfigmyimx6ek140-6g-128m-nand_defconfig  myimx6ek140-6y-128m-nand_defconfigmyimx6ek140-6g-256m-emmc_defconfig  myimx6ek140-6y-256m-emmc_defconfigmyimx6ek140-6g-256m-nand_defconfig  myimx6ek140-6y-256m-nand_defconfigmyimx6ek140-6g-512m-emmc_defconfig  myimx6ek140-6y-512m-emmc_defconfigmyimx6ek140-6g-512m-nand_defconfig  myimx6ek140-6y-512m-nand_defconfig ********** MY-IMX6-EK140P **********myimx6ek140p-6g-128m-emmc_defconfig  myimx6ek140p-6y-128m-emmc_defconfigmyimx6ek140p-6g-128m-nand_defconfig  myimx6ek140p-6y-128m-nand_defconfigmyimx6ek140p-6g-256m-emmc_defconfig  myimx6ek140p-6y-256m-emmc_defconfigmyimx6ek140p-6g-256m-nand_defconfig  myimx6ek140p-6y-256m-nand_defconfigmyimx6ek140p-6g-512m-emmc_defconfig  myimx6ek140p-6y-512m-emmc_defconfigmyimx6ek140p-6g-512m-nand_defconfig  myimx6ek140p-6y-512m-nand_defconfig ********** MY-IMX6-EK200 **********myimx6ek200-6q-1g_defconfig     myimx6ek200-6q-2g_defconfig     myimx6ek200-6q-512m_defconfig  myimx6ek200-6u-1g_defconfig     myimx6ek200-6u-2g_defconfig     myimx6ek200-6u-512m_defconfig  myimx6ek200-6s-512m_defconfig   myimx6ek200-6s-1g_defconfig     myimx6ek200-6s-128m_defconfig  myimx6ek200-6qp-1g_defconfig    myimx6ek200-6qp-2g_defconfig    myimx6ek200-6qp-512m_defconfig   ********** MY-IMX6-EK314 **********myimx6ek314-6q-1g_defconfig     myimx6ek314-6q-2g_defconfig     myimx6ek314-6q-512m_defconfig  myimx6ek314-6u-1g_defconfig     myimx6ek314-6u-2g_defconfig     myimx6ek314-6u-512m_defconfig  myimx6ek314-6s-512m_defconfig   myimx6ek314-6s-1g_defconfig     myimx6ek314-6s-128m_defconfig  myimx6ek314-6qp-1g_defconfig    myimx6ek314-6qp-2g_defconfig    myimx6ek314-6qp-512m_defconfig   ********** MY-IMX6-EK336 **********myimx6ek336-6q-1g_defconfig     myimx6ek336-6q-2g_defconfig     myimx6ek336-6q-512m_defconfig  执行编译=====> Input:make =====> Output: scripts/kconfig/conf  --silentoldconfig Kconfig  CHK     include/config.h  UPD     include/config.h  GEN     include/autoconf.mk  GEN     include/autoconf.mk.dep  CHK     include/config/uboot.release  CHK     include/generated/timestamp_autogenerated.h  CFG     u-boot.cfg  ......  LD      u-boot  OBJCOPY u-boot-nodtb.bin  OBJCOPY u-boot.srec  SYM     u-boot.sym  COPY    u-boot.bin  CFGS    board/myzr/myimx6/myimx6a7-6y-ddr3.cfg.cfgtmp  MKIMAGE u-boot.imxNote: 如果有提示 “cc1: error”,通常是交叉编译工具的配置没生效,可以按前面 “交叉编译工具链安装” 中的 “source 工具链配置文件” 操作一次后再执行此步骤。· u-boot 目标文件 u-boot.imx 即目标文件。 3.3  编译u-boot环境变量脚本=====> Input:mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "myzr bootscripts" -d board/myzr/bootscripts/myimx6a7_l4115_emmc_script.cmd my_environment_emmc.scr =====> Output: Image Name:   myzr bootscriptsCreated:      Wed Jan  2 09:40:40 2019Image Type:   ARM Linux Script (uncompressed)Data Size:    1450 Bytes = 1.42 kB = 0.00 MBLoad Address: 00000000Entry Point:  00000000Contents:   Image 0: 1442 Bytes = 1.41 kB = 0.00 MB 3.4  目标文件u-boot.imx 和 my_environment_emmc.scr 即编译得到的目标文件,保存这两个文件 4  内核编译4.1  编译前的准备创建编译工作目录=====> Input:mkdir ~/my-work/02_source/ -p 解压源码包到工作目录=====> Input:tar xf linux-4.1.15-svn*.tar.bz2 -C ~/my-work/02_source/ 4.2  编译内核目标文件进入内核源码目录=====> Input:cd ~/my-work/02_source/linux-4.1.15 生成目标平台的 .config 文件=====> Input:make myimx6a9_defconfig =====> Output:   HOSTCC  scripts/basic/fixdep  HOSTCC  scripts/kconfig/conf.o  SHIPPED scripts/kconfig/zconf.tab.c  SHIPPED scripts/kconfig/zconf.lex.c  SHIPPED scripts/kconfig/zconf.hash.c  HOSTCC  scripts/kconfig/zconf.tab.o  HOSTLD  scripts/kconfig/conf## configuration written to .config#Note: 如果有“Can't find default configuration "arch/x86/configs” 的错误,是因为交叉编译工具链的配置没有生效,可以按前面 “交叉编译工具链安装” 中的 “source 工具链配置文件” 操作一次后再执行此步骤 【注意】:上面 make 后面的 myimx6a7_defconfig 改为与开发板型号对应的配置文件。 ********** MY-IMX6-EK140、MY-IMX6-EK140P **********myimx6a7_defconfig   ********** MY-IMX6-EK200、MY-IMX6-EK314、MY-IMX6-EK336 **********myimx6a9_defconfig  编译内核目标文件=====> Input:make zImage =====> Output: scripts/kconfig/conf --silentoldconfig Kconfig  CHK     include/config/kernel.release  UPD     include/config/kernel.release  WRAP    arch/arm/include/generated/asm/auxvec.h  ......  AS      arch/arm/boot/compressed/piggy.lzo.o  LD      arch/arm/boot/compressed/vmlinux  OBJCOPY arch/arm/boot/zImage  Kernel: arch/arm/boot/zImage is ready内核目标文件 arch/arm/boot/zImage 即内核目标文件 【下章节为明远智睿MY-IMX6 Linux-4.1.15 编译参考手册(3)】

  • 2019-01-14
  • 发表了主题帖: 明远智睿MY-R16-EK166 Android-4.4 编译手册

    1  环境搭建1.1  安装ubuntu12.04在这里建议用户使用64bit的ubuntu12.04的操作系统,已经真机编译验证过。 1.2  安装JDK6****注意,版本一定要是jdk6,其他版本都会有问题****下载jdk-6u45-linux-x64.bin文件并安装 $ cd /usr $ sudo mkdir java $ cd java $ sudo cp ~ /jdk-6u45-linux-x64.bin ./ $ sudo chmod 777 ./jdk-6u45-linux-x64.bin $ sudo ./jdk-6u45-linux-x64.bin 打开profile文件并添加环境变量 $ sudo gedit /etc/profile export JAVA_HOME=/usr/java/jdk1.6.0_45 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$PATH:$JRE_HOME/bin $ source /etc/profile 查看jdk版本 $ java –version java version "1.6.0_45"能看到版本为1.6.0_45就表示安装成功。 2  安装编译Android系统需要的库sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ g++-multilib mingw32 tofrodos gcc-multilib ia32-libs \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \ lzop libssl1.0.0 libssl-dev uboot-mkimage 3  下载源码并解压下载android.tar.bz2.0 ,android.tar.bz2.1 ,android.tar.bz2.2三个文件。并用如下的命令解压 $cat android.tar.bz2.* | tar -jxv 解压完成后会有一个名叫R16的目录,目录里有一个android跟lichee目录。 android目录是安卓系统源码,lichee目录放的uboot跟内核。 4  编译内核与Uboot4.1  配置平台信息$cd ~/R16/android $source build/envsetup.sh $lunch astar_evb30-eng $cd ~/R16/lichee/ $./build.sh configWelcome to mkscript setup progress All available chips: 0. sun8iw5p1 Choice: 0 All available platforms: 0. android 1. dragonboard 2. linux 3. tina Choice: 0 All available kernel: 0. linux-3.4 Choice: 0 All available boards: 0. bell-one 1. evb 2. evb-20 3. evb-30 4. evb-rtl8723bs 5. sc3813r Choice: 3 4.2  编译内核$cd ~/R16/lichee $./build.sh 4.3  编译Uboot$cd ~/R16/lichee/brandy/u-boot-2011.09/ $make distclean $make sun8iw5p1_config $make 5  编译android系统$cd ~/R16/android/ $extract-bsp $make 6  打包$cd ~/R16/android $pack 打包的最终文件在~/R16/lichee/tools/pack下的sun8iw5p1_android_evb-30_uart0.img 将该文件复制到电脑上就可以烧写到开发板上。烧写请参考《R16烧录手册》。

最近访客

< 1/1 >

统计信息

已有10人来访过

  • 芯币:252
  • 好友:--
  • 主题:74
  • 回复:79
  • 课时:--
  • 资源:--

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言