查看: 3704|回复: 5

Galileo的逆袭!PCIe插槽挂设:SD卡、无线网卡、串口卡

[复制链接]
  • TA的每日心情
    开心
    2017-7-3 15:02
  • 签到天数: 56 天

    [LV.5]常住居民I

    发表于 2017-4-17 19:29 | 显示全部楼层 |阅读模式
    本帖最后由 甲基红橙黄绿蓝 于 2017-4-17 19:45 编辑

    概述
           装过机的同学可能都知道主板上各种插槽,Mini PCIe插槽是其中一种经常用来挂设无线网卡的插槽。实际上PCIe总线是通用的,声卡、网卡、SD转接卡、USB转接卡、串口卡、数据采集卡,只要保证是Mini PCIe接口的,都可以往Mini PCIe插槽里插。当然,要保证正常工作,还需要相应的驱动程序。
           要注意的一种叫做MSATA的插口,它常常用于挂设固态硬盘。它与Mini PCEe插口完全一致、但是信号不一样,互相不兼容,购买的时候别买错了。
           Intel Galileo的背面带有一个Mini PCIe插槽。我尝试了从网上购买了一些Mini PCI外设:SD转接卡、无线网卡、RS232串口卡,现在串口卡还没到货,SD卡和无线网卡均测试通过。
    galileo_back.jpg
    图:Intel Galileo背面的Mini PCIe插槽
    787ad37ddaa0a5e4a7d9b08bfe0931fd.jpg
    图:典型的Mini PCIe公头(俗称金手指)









    准备工作
           首先需要你已经成功用SD卡引导Linux系统,比如Yocto系统。然后你要会用你的PC机作为终端与Galileo建立远程连接,无论是串口连接还是通过有线网进行ssh连接。这也是玩Galileo最基本的手段。如果你还在用Arduino IDE为Galileo编程,甚至什么也不会,可以访问Intel创客中心获取教程:Intel Galileo上手。详细讲解了如何搭建Arduino IDE的Galileo开发环境和如何让Galileo从SD卡引导。
            当你已经建立终端连接时,可以输入命令 lspci,可以看到Galileo里的PCIe总线的相应的硬件驱动至少有USB、SD卡、有线网卡、无线网卡。
    lspci.png
    图:在终端输入lspci显示的信息

            我在以下示例中使用的是第一代Galileo,系统是Yocto 3.8.7。其他系统如果不可以请自行解决。







    PCIe挂设更多的SD卡
           我购买的SD转接板淘宝链接:Mini PCIe 双SD转接卡
           另外你还需要一个已经格式化为FAT16或FAT32文件系统的SD卡,你可以先放一些文件进去便于识别。SD卡有没有大小要求我不知道,但是我测试的一个128M FAT16的和一个8G FAT32的SD卡均成功了。
    sd.jpg
    图:Intel Galileo挂设SD卡转接板

           操作如下:先给Galileo上电并建立终端连接,然后把SD卡转接板插入PCIe插槽(如果在上电前就插入SD卡,Galileo会试图从这个SD卡启动,有点坑爹,除非你改一下引导优先级)。看到转接板上的Power和Access灯都亮了,八成就是成功了。然后在终端输入命令:
    [mw_shl_code=bash,true]fdisk -l[/mw_shl_code]
    显示所有的外存设备如下:
    disk.png
           显然,第一个disk是存放你的系统的,观察第二个disk,它的唯一一个分区在/dev/sda1、文件系统和你插入的SD卡是符合的,就是它了!要访问该卡的文件,需要进行挂载(mount),首先新建一个目录/mnt/sd作为挂载目录:
    [mw_shl_code=bash,true]mkdir  /mnt/sd[/mw_shl_code]
           然后进行挂载:
    [mw_shl_code=bash,true]mount -t vfat  /dev/sda1  /mnt/sd[/mw_shl_code]
           其中vfat代表该SD卡的文件系统是FAT16或FAT32,/dev/sda1是你要挂载的设备的位置,/mnt/sd是被挂载的目录。没有输出就代表成功,cd过去看看:
    [mw_shl_code=bash,true]cd  /mnt/sd
    ls[/mw_shl_code]
           如果能看到你预先放进去的文件,说明大功告成。







    PCIe挂设无线网卡
           Galileo只自带Intel N6205和N135无线网卡的驱动,其他网卡还要自己装驱动,比较麻烦。以下是可用的Intel N6205网卡的淘宝链接,买的时候别忘了买配套天线:Intel N6205 无线网卡
    网卡.jpg
    图:Galileo挂设Intel N6205网卡


           首先把网卡天线装好,插入PCIe插槽,给Galileo上电,连接到终端,输入命令查看网络接口:
    [mw_shl_code=bash,true]ifconfig[/mw_shl_code]
    可以看到除了eth0和lo(本地回环地址),还多出了一项叫做wlp1s0,这个就是无线网卡了。要进行wifi连接,运行命令打开connmanctl来管理网络:
    [mw_shl_code=bash,true]connmanctl[/mw_shl_code]
    进入connmanctl命令界面后,先输入:
    [mw_shl_code=bash,true]enable wifi[/mw_shl_code]
    成功打开WiFi后会有提示。然后扫描wifi:
    [mw_shl_code=bash,true]scan wifi[/mw_shl_code]
    最后显示所有网络服务(包括wifi和有线网):
    [mw_shl_code=bash,true]services[/mw_shl_code]
    可以看到扫描到的WiFi如下: scan.png

    其中包括无线网也包括有线网(如果你插了网线的话)。你需要复制你想连接的WiFi的那一大段名称,然后输入quit退出connmanctl,编辑配置文件/var/lib/connman/wifi.config:
    [mw_shl_code=bash,true]nano /var/lib/connman/wifi.config[/mw_shl_code]
    加入如下内容(其中中括号里那么一大段就是你在上一步复制的WiFi名称):
    [mw_shl_code=bash,true][service_wifi_60672098d2b4_5869616f6d695f4841534545_managed_psk]

    Type = wifi

    Security = wpa2

    Name = 你的WiFi名称

    Passphrase = 你的WiFi密码[/mw_shl_code]
    完成后重新打开connmanctl,输入命令:
    [mw_shl_code=bash,true]connect  wifi_60672098d2b4_5869616f6d695f4841534545_managed_psk[/mw_shl_code]

    成功连接后,输入命令technologies,可以看到wifi的connection字段是True。大功告成!然后你就可以拔掉网线用wifi重新建立ssh连接了。
    tech.png

    以后每次Galileo上电的时候会试图连接这个Wifi,若连接失败则试图连接无线网。如果它不自动连接无线网了,可以用connmanctl里的connect命令重新连接无线网。






    PCIe挂设RS232串口卡
           货还没到,占坑待写。
          




  • TA的每日心情
    开心
    2017-7-3 15:02
  • 签到天数: 56 天

    [LV.5]常住居民I

     楼主| 发表于 2017-4-18 16:40 | 显示全部楼层
    居然没人回ORZ,看来Galileo真的没人玩了吗

    该用户从未签到

    发表于 2017-5-12 23:17 | 显示全部楼层
    特意注册账号过来顶( ̄▽ ̄*)b,感觉博主galileo玩得很6呀

    我这几天刚玩galileo,,顺便学习下linux,,估计要玩很长时间

    我给它装yocto的linux结果写坏了两个tf卡。。。

    我看你说galileo会试图从PCIE中的TF卡引导系统,不知道我去买一个PCIE的sd卡槽,在里面烧录系统,会不会可以。
  • TA的每日心情
    开心
    2017-7-3 15:02
  • 签到天数: 56 天

    [LV.5]常住居民I

     楼主| 发表于 2017-5-13 09:24 | 显示全部楼层
    伯努利 发表于 2017-5-12 23:17
    特意注册账号过来顶( ̄▽ ̄*)b,感觉博主galileo玩得很6呀

    我这几天刚玩galileo,,顺便学习下linux,,估 ...

    Galileo玩玩就行,不要在上面花费太长时间,因为确实鸡肋……

    建议树莓派和Arduino 101两种板子

    该用户从未签到

    发表于 2017-5-14 11:04 | 显示全部楼层
    甲基红橙黄绿蓝 发表于 2017-5-13 09:24
    Galileo玩玩就行,不要在上面花费太长时间,因为确实鸡肋……

    建议树莓派和Arduino 101两种板子 ...

    其实我玩galileo主要是为了学linux和x86,不为了各种扩展,虽然树莓派和arduino101功能更多

    该用户从未签到

    发表于 2017-5-14 11:21 | 显示全部楼层
    甲基红橙黄绿蓝 发表于 2017-5-13 09:24
    Galileo玩玩就行,不要在上面花费太长时间,因为确实鸡肋……

    建议树莓派和Arduino 101两种板子 ...

    不过还是很谢谢推荐啦
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    新设计的一款遥控播放音乐机器人
    新设计的一款遥控播放音乐
    近期设计的一款遥控播放音乐歌曲的机器人终于完工了,DF mini mp3模块是真的强大。sol
    ESP8266物联网创意点阵时钟,女朋友看了都想要!
    ESP8266物联网创意点阵时
    [md]本文作者:默 & 铁熊 前段时间我在网上看到了一款很有意思的点阵时钟,它可以
    按键中断无法触发
    按键中断无法触发
    如题,按键中断无法触发,设成电平变化触发中断程序,但是flag的状态一直不变 void
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    OLED心率示波仪
    OLED心率示波仪
    在ARDUINO UNO开发板上插上一片0.96寸OLED显示屏并上传已下简单的程序就能构成一个OLE
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表