Raspberry Pi 入手小记

最近看到Raspberry Pi很火爆,便跟风入了一个国行红色版。

卖家发的顺丰,从深圳到北京,前晚发货,第二天下午4点顺丰网站上显示还在北京集散点,所以我以为第三天上午才能到,也就没操心。下午6:05无意中发现5点多已经配送成功了,而传达室的大叔此时已经下班闪人了,结果还是第三天上午才拿到 🙁

闲话少扯,说说入手的折腾。

开整RPi

由于之前对这个小玩意了解了比较多,所以准备也比较充分,网线,HDMI,8G SD卡,还有一套雷柏的无线键鼠。选用无线键鼠套装是因为共用一个usb发射器,能省一个口是一个呗。

第一步,烧录/配置系统。

网上这个教程比较多了,官方的系统下载地址是: http://www.raspberrypi.org/downloads

目前系统一共分4个: Raspbian, soft-float Debian, Arch Linux和Risc OS.

Raspbian :基于Debian的官方版本,没啥特殊需求的直接用这个。

Soft-float Debian :和Raspbian一样,只是采用了软件模拟的浮点运算,如果需要使用某些无法使用硬件浮点预算器ARM-FPU的软件(如 Oracle-JVM),采用这个版本。

我使用的是Raspbian.

先找出SD卡在什么地方。

# sudo fdisk -l

在输出的结果中会出现类似如下的信息

Disk /dev/mmcblk0: 1977 MB, 1977614336 bytes
62 heads, 61 sectors/track, 1021 cylinders, total 3862528 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
 
        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1             135     3862527     1931196+   6  FAT16

其中/dev/mmcblk0就是sd卡 /dev/mmcblk0p1是sd卡上的分区,需要注意分区可能有多个。

由于就要将系统的镜像烧录到这个sd卡上面,所以需要将SD卡上的所有分区卸载掉才行,这里我就忘记卸载了,结果RPi插入SD卡后引导不起来,只能重来了一次。卸载命令如下,如果有多个,需要全部卸载完。

# sudo umount /dev/mmcblk0p1

下载系统镜像压缩包

# wget http://downloads.raspberrypi.org/images/raspbian/2013-02-09-wheezy-raspbian/2013-02-09-wheezy-raspbian.zip

解压

# unzip 2013-02-09-wheezy-raspbian.zip

烧录到SD卡

# dd if=2013-02-09-wheezy-raspbian.img of=/dev/mmcblk0

正常情况下,插入RPi,加电后应该就能启动了。

第一次启动成功后进入了raspi-config进行配置,首先将分区拓展到整个SD卡,而后选定键盘布局为105键美国布局,语言为en_US.UTF8,时区为Asia/Shanghai。显存为32M。重启后终于看到了可爱的树梅派桌面。当然设置错了或者中途想改也没问题,随时可以通过运行sudo raspi-config来重新设置。

————

我遇到的问题:

1,HDMI屏幕显示问题

第一次加电之后能看到SD卡的灯闪,但是屏幕没反应(HDMI转DVI接DELL U2312HM)。
在网上找了一下,说是将/boot/config.txt的HDMI_SAFE的注释删掉就好了,于是照做。发现显示器能亮了,但是只有640*480的 分辨率。再经过若干折腾,发现将HDMI_SAFE还是注掉,将hdmi_force_hotplug=1打开就可以完美1080p了。不过用hdmi接 电视的时候需要再关上。

———–

2.无线键盘响应不灵敏或者重复输入问题

进入系统后,发现键盘的问题非常严重,不是按了没反应就是一下子出来一排,查了官网的trouble shooting,说是因为供电不足,换了有源的usb hub后问题解决。

———–

3.无线网卡驱动问题(Problem Solving for wireless card TL-WN725N RTL8188EU driver in raspberry pi)

由于在网上看到一个哥们(这货的链接)说自己的RPi在用无线网卡(TP LINK TL-WN725N),我也入了一个同型号的,装上后发现没有那么顺利,我的芯片并非是文中所说的RTL8188CUS,而是RTL8188EU,而系统也已经更新到了3.6.11+,所以驱动需要自己编译。
当然,我已经编译完了,你可以直接下载 8188eu.ko(download),放入/lib/modules/3.6.11+/kernel/drivers/net/wireless/,直接跳到第6节挂载一下即可。

You can download the driver 8188eu.ko which I’ve got directly (download) and put it to the folder “/lib/modules/3.6.11+/kernel/drivers/net/wireless/”, jump to section 6–“Edit /etc/modules”. Or DIY with following the next steps.

喜欢自己折腾的,具体操作如下:

1) save the follow codes as downkernel.sh

cd /usr/src
wget -O rpi.tar.gz https://github.com/raspberrypi/linux/tarball/rpi-3.6.y
tar xzf ./rpi.tar.gz
KVER=`uname -r`
mv raspberrypi-linux-* linux-$KVER
cd linux-$KVER/
sed -i 's/EXTRAVERSION =.*/EXTRAVERSION = +/' Makefile
zcat /proc/config.gz > .config
wget https://github.com/raspberrypi/firmware/raw/master/extra/Module.symvers
make oldconfig
make modules_prepare
ln -s /usr/src/linux-$KVER /usr/src/linux
ln -s /usr/src/linux-$KVER /lib/modules/$KVER/source
ln -s /usr/src/linux-$KVER /lib/modules/$KVER/build

2) run downkernel.sh

sudo sh downkernel.sh

3)Download RTL8188EU driver(https://github.com/Red54/linux-shumeipai2/tree/sunxi-3.0/drivers/net/wireless/rtl8188eu),or download from this blog(download),uncompress & enter the folder rtl8188eu。

tar xvf rtl8188eu.tar.gz
cd rtl8188eu

4)Modify file Makefile

Before :

...
CONFIG_PLATFORM_I386_PC = y
CONFIG_PLATFORM_ANDROID_X86 = n
...

After:

...
CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_BCM2708 = y
CONFIG_PLATFORM_ANDROID_X86 = n
...

and find :

...
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
KVER  := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
endif

ifeq ($(CONFIG_PLATFORM_TI_AM3517), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_SHUTTLE
CROSS_COMPILE := arm-eabi-
KSRC := $(shell pwd)/../../../Android/kernel
ARCH := arm
endif
...

change to:

...
ifeq ($(CONFIG_PLATFORM_I386_PC), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?=
KVER  := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
endif

ifeq ($(CONFIG_PLATFORM_BCM2708), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE :=
KVER := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless
INSTALL_PREFIX :=
MODULE_NAME := 8188eu
endif

ifeq ($(CONFIG_PLATFORM_TI_AM3517), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN -DCONFIG_PLATFORM_ANDROID -DCONFIG_PLATFORM_SHUTTLE
CROSS_COMPILE := arm-eabi-
KSRC := $(shell pwd)/../../../Android/kernel
ARCH := arm
endif
...

5)Compile codes and install 8188eu.ko

sudo make && make install

6)由于得到的rtl8188.ko并没有编译进内核,所以还需要挂载一下,
Edit file /etc/modules,append “8188eu” to the end,after that , the file will looks like this:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.

snd-bcm2835
8188eu

reboot and have fun 🙂

此过程参考了如下两篇文章:

http://www.tuicool.com/articles/jYreMf

http://blog.elevendroids.com/2012/12/building-tp-link-tl-wn725n-wifi-usb-adapter-driver-for-raspberry-pi/#more-107

5 thoughts on “Raspberry Pi 入手小记

  1. naturally like your web site but you have to check the spelling on several of your posts. Several of them are rife with spelling issues and I find it very bothersome to tell the truth then again I will certainly come back again.

  2. Pingback: 初次接触Raspberry Pi 无线网卡驱动 路由设置 | 码生活

发表评论

电子邮件地址不会被公开。 必填项已用*标注