IOT-GATE-RPi: Raspbian
Overview
IOT-GATE-RPi comes with a Raspbian Linux image. Raspbian Linux is a free operating system based on Debian optimized for the Raspberry Pi hardware. It is the official supported operating system for Raspberry Pi. Raspbian Linux image includes more than 35,000 software packages. Among them:
- Core system
- Debian package management system
- X11 Windowing System
- LXDE desktop manager
- SSH server and client
- Python, Scratch, Sonic Pi, Java and Mathematica
Additional images can be used with IOT-GATE-RPi. All optional images can be found in Raspberry Pi downloads. The IOT-GATE-RPi: Raspbian: Manual Installation page provides a brief introduction on how to install the Rasbian image.
Using Raspbian Linux on IOT-GATE-RPi
Connection and Logging In
To login into the Linux system, use a keyboard and display or a serial console, connect through the network (ssh).
Use the following username and password to login:
raspberrypi login: pi Password: raspberry
Networking
For most home networks, no further configuration is required in order to be able to connect to the Internet. For this to work, the router should be configured for DHCP (Dynamic Host Configuration Protocol).
To configure networking, edit /etc/network/interfaces and /etc/dhcpcd.conf. For more information about Debian Linux network configuration read:
- Network setup chapter in the Debian Reference
- Network Configuration chapter in the Debian Wiki
The majority of network setup can be done via the interfaces configuration file at /etc/network/interfaces.
auto line is required for interfaces that have to be brought up at boot time. |
- Using DHCP to automatically configure the interface
auto eth0 allow-hotplug eth0 iface eth0 inet dhcp
- Configuring the interface manually
auto eth0 iface eth0 inet static address 192.168.1.170 netmask 255.255.0.0 gateway 192.0.0.1
RTC
Accessing and setting the RTC
To access the RTC time and date run:
root@cm-debian:~# hwclock Sat Jan 1 00:00:00 2000 -10.011159 seconds
To set the date and write it into the RTC do the following:
root@cm-debian:~# date -s "31 JUL 2015 10:00:00" Fri Jul 31 10:00:00 UTC 2015 root@cm-debian:~# hwclock -w root@cm-debian:~# hwclock Fri Jul 31 10:00:13 2015 -1.066224 seconds
Wifi
IOT-GATE-RPi features 802.11b/g/n wireless connectivity solution.
WiFi Initialization
- WiFi requires no user interaction for being configured. The drivers get loaded automatically.
Make sure that the WiFi drivers are loaded:
root@cl-rootfs:~# lsmod rt2800usb 18824 0 rt800lib 80070 1 rt2x00usb 12798 1 rt2x00lib 48694 3
The WiFi driver can be loaded manually using modprobe.
- iwconfig command from wireless-tools package can be used to retrieve detailed information about the WiFi interfaces:
root@cl-rootfs:~# iwconfig wlan0 wlan0 IEEE 802.11abgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm Retry short limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on
- Activate the interface:
root@cl-rootfs:~# ifconfig wlan0 up
- Sample WiFi scanning:
root@cl-rootfs:~# iwlist wlan0 scan
The output will show the list of Access Points and Ad-Hoc cells in range. For more information about connecting to wireless networks and tuning WiFi interfaces refer to wpa_supplicant and wireless-tools man pages.
wpa_supplicant
- Configuration sample
Please open a wpa_supplicant configuration file bellow and put a network name and a password into the "ssid" and "psk" fields respectively.
root@cl-rootfs:~# cat /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant network={ ssid="wireless_network_name" key_mgmt=WPA-PSK psk="wireless_network_password" }
- Sample run
root@cl-rootfs:~# ifconfig wlan0 up root@cl-rootfs:~# wpa_supplicant -B -Dwext -c /etc/wpa_supplicant.conf -i wlan0 root@cl-rootfs:~# dhclient wlan0
4G/3G Cellular Modem
IOT-GATE-RPi is equipped with an on-board micro-SIM card socket and support cellular communication using 4G/3G cellular modem with USB interface in mini-PCIe form-factor.
The following 3G cellular modules have been tested:
- Telit HE910-D 3G modem
- SIMcom SIM5360 3G modem
- SIMcom SIM7100E 4G modem
In order to use 4G/3G cellular modem the several software packages have to be installed.
iot-gate-rpi_raspbian_2018-01-24.zip contains the package rpi3-modem which takes care of all needed package installations.
When using the image burned to the eMMC provided by us, there is no need to install additional packages because rpi3-modem is allready installed. In both cases continue to the Loading kernel modules section. |
Installing Debian packages
root@cm-debian:~# apt-get install libpcap0.8 libuniconf4.6 libwvstreams4.6-base libwvstreams4.6-extras ppp wvdial
Loading kernel modules
Device driver modules require no user interaction and get loaded automatically. If for some reason device driver modules are not loaded automatically, please load them manually:
- USB Driver for GSM modems and Qualcomm MSM Interface (QMI) WWAN driver are required for SIMcom modules:
root@cl-som-imx7-sid:~# modprobe option root@cl-som-imx7-sid:~# modprobe qmi_wwan
- USB Abstract Control Model driver is required for Telit HE910-D:
root@cl-som-imx7-sid:~# modprobe cdc-acm
Point-to-Point protocol (PPP) drivers must be loaded manually prior to dialing:
root@cl-som-imx7-sid:~# modprobe ppp_generic root@cl-som-imx7-sid:~# modprobe ppp_async root@cl-som-imx7-sid:~# modprobe ppp_synctty root@cl-som-imx7-sid:~# modprobe bsd_comp root@cl-som-imx7-sid:~# modprobe ppp_deflate
WvDial
WvDial is a Point-to-Point Protocol dialer that automatically detects modem, and can log into almost any Internet Service Provider without a complicated configuration. First, edit the wldial configuration file. Please use the a correct ISP APN instead of YOUR_ISP_APN stub:
root@cl-som-imx7-sid:~# cat /etc/wvdial.conf [Dialer cellular] # Your modem device. Usually /dev/ttyUSB0 or /dev/ttyACM0 #Modem = /dev/ttyACM0 Modem = /dev/ttyUSB3 # Port speeds that're worth testing: # 921600 # 460800 # 115200 # 57600 Baud = 115200 # If your SIM card has a PIN, comment this line, uncomment the next one, and # change the PIN shown to your PIN. Init = ATZ # Init = ATZ+CPIN="0000" # If you know your ISP's APN, specify it instead of YOUR_ISP_APN below. # If you don't, you may be able to find out on the 'net, or from tech # support. # # There's also an APN table at https://wiki.ubuntu.com/NetworkManager/Hardware/3G . # # If you can't find it, you might be able to dial out without setting an APN # (especially from a mobile phone). Just comment this line and uncomment # the next one. Init2 = AT+CGDCONT=1,"IP","YOUR_ISP_APN" #Init2 = AT+CGDCONT=1,"IP" # Most services/devices dial with *99# . A few seem to require *99***1# Phone = *99# # These often suffice, but your ISP might require different details. They're # often dummy details used for all users on the ISP, frequently the ISP's # name, but some ISP's do require you to use a real username and password. Username = dummy Password = dummy
The following command can be used for dialing:
root@cm-debian:~# wvdial cellular &
GPIO access
Linux provides simple and convenient GPIO access via sysfs interface. A GPIO should be exported using /sys/class/gpio/export. After the GPIO is exported it is possible to change its direction and value using /sys/class/gpio/gpioX/direction and /sys/class/gpio/gpioX/value attributes.
Example
The following example demonstrates how to configure GPIO 140 as output and set value to high:
root@cl-rootfs:~# echo 140 > /sys/class/gpio/export root@cl-rootfs:~# echo out > /sys/class/gpio/gpio140/direction root@cl-rootfs:~# echo 1 > /sys/class/gpio/gpio140/value
The above example assumes that the pinmux configuration of the corresponding pin is set to GPIO mode and the GPIO 140 is not requested in the Linux kernel. |