COM iMX25 Linux: Difference between revisions
From Wiki-DB
Jump to navigationJump to search
(4 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
==Linux virtual machine for development == | == Linux virtual machine for development == | ||
* Please have a look at: '''[[Virtual Machine for Application Development]]''' | |||
==Building your own Kernel == | ==Building your own Kernel == | ||
==== Sources for the iMX25 Linux Kernel v3.2.9 / v3.2. | ==== Sources for the iMX25 Linux Kernel v3.2.9 / v3.2.81: ==== | ||
* The latest Linux Kernel source code is available on GitHub: [https://github.com/dh-electronics/linux-imx25 https://github.com/dh-electronics/linux-imx25] | |||
* We recommend to use on new projects the latest v3.2.81 Linux Kernel | |||
==== How to build a kernel ==== | ==== How to build a kernel ==== | ||
Line 17: | Line 18: | ||
|2. <tt># ''git clone [https://github.com/dh-electronics/linux-imx25.git https://github.com/dh-electronics/linux-imx25.git]''</tt> | |2. <tt># ''git clone [https://github.com/dh-electronics/linux-imx25.git https://github.com/dh-electronics/linux-imx25.git]''</tt> | ||
|- | |- | ||
|3. <tt># ''git checkout BRANCH''<br/>(BRANCH=dev/3.2.9_dhcom or BRANCH=dev/3.2. | |3. <tt># ''git checkout BRANCH''<br/>(BRANCH=dev/3.2.9_dhcom or BRANCH=dev/3.2.81_dhcom)</tt> | ||
|- | |- | ||
|4. <tt># ''ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make imx25_dhcom_defconfig''</tt> | |4. <tt># ''ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make imx25_dhcom_defconfig''</tt> | ||
Line 30: | Line 31: | ||
|- | |- | ||
| | | | ||
=== ''Sources older than February 2014'' === | === ''Sources older than February 2014'' === | ||
==== Sources for the iMX25 Linux Kernel v2.6.38: ==== | ==== Sources for the iMX25 Linux Kernel v2.6.38: ==== | ||
Line 74: | Line 76: | ||
:* [[media:Linux-2.6.38_DHCOM_iMX25_kernel.zip|Binary image 2.6.38 DHCOM iMX25 linux kernel (2014-09-29)]] | :* [[media:Linux-2.6.38_DHCOM_iMX25_kernel.zip|Binary image 2.6.38 DHCOM iMX25 linux kernel (2014-09-29)]] | ||
:* [[media:DHCOM-linux-imx-3.2.9_BUILD.zip|Binary image 3.2.9 DHCOM iMX25 linux kernel ( | :* [[media:DHCOM-linux-imx-3.2.9_BUILD.zip|Binary image 3.2.9 DHCOM iMX25 linux kernel (2016-02-24)]] | ||
:* [[media:DHCOM-linux-imx-3.2.78_BUILD.zip|Binary image 3.2.78 DHCOM iMX25 linux kernel (2016-03-08)]] | |||
:{| class="wikitable" | :{| class="wikitable" |
Latest revision as of 08:58, 7 October 2016
Linux virtual machine for development
- Please have a look at: Virtual Machine for Application Development
Building your own Kernel
Sources for the iMX25 Linux Kernel v3.2.9 / v3.2.81:
- The latest Linux Kernel source code is available on GitHub: https://github.com/dh-electronics/linux-imx25
- We recommend to use on new projects the latest v3.2.81 Linux Kernel
How to build a kernel
Get sources from Github and build the linux kernel
1. Start a terminal on Linux |
2. # git clone https://github.com/dh-electronics/linux-imx25.git |
3. # git checkout BRANCH (BRANCH=dev/3.2.9_dhcom or BRANCH=dev/3.2.81_dhcom) |
4. # ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make imx25_dhcom_defconfig |
5. # ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make uImage |
- Your new uImage file is available in arch/arm/boot
Sources older than February 2014Sources for the iMX25 Linux Kernel v2.6.38:Sources for the iMX25 Linux Kernel v3.2.9:How to build a kernel
|
Update the kernel with U-Boot
- The linux kernel will be updated by the U-Boot flash update.
1. Copy the uImage
anduImage.env
file onto a microSD card with a FAT file system (you can use the 1st partition on the microSD card)2. Insert the microSD card and start the system 3. Go to the U-Boot console by pressing BACKSPACE on a RS232 terminal (during startup) 4. update linux
Debian Rootfilesystem
Available Rootfilesystems
Please have a look at the iMX25 Downloads section.
External Documentation
- The Debian Administrator's Handbook: A reference book presenting the Debian distribution, from initial installation to configuration of services. The administration and configuration chapters apply to our Debian based root filesystems.
- Debian Documentation
Login
Debian GNU/Linux 6.0 dhcom ttymxc1 dhcom login: root |
Calibrating the touchscreen
# TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate |
Running example Qt Apps
# QWS_MOUSE_PROTO=Tslib:/dev/input/event0 /usr/qt/demos/demoname/demoname -qws |
- Remark: To start the Qt-Browser replace demoname with browser
Shutdown
# shutdown -h now |
How to create a microSD-card with a rootfilesystem on it
1. Format a microSD card like following (in linux e.g. gparted, palimpsest) with Master Boot Record partition scheme
P1 FAT (Primary partition: 100MB) |
2. Untar the root file system to the ext3 partition of the microSD card (Don't copy the tar archive directly to the microSD card)
Start the Console on Linux |
Remark: If you got a *.tar.gz file so type tar xfzv ... to extract the rootfilesystem.
Busybox Rootfilesystem
Calibrating the touchscreen
TSLIB_TSDEVICE=/dev/event0 ts_calibrate
Running example Qt Apps
QWS_MOUSE_PROTO=Tslib:/dev/event0 /usr/qt/demos/demoname/demoname -qws
- For the Qt-Browser change
demoname
tobrowser
Login/Shutdown system
Username: root Password: n/a
halt
Kernel Userspace Interfaces to Access Hardware
Serial (UART) Interfaces
DHCOM (FF) UART 1 /dev/ttymxc1
DHCOM (BT) UART 2 /dev/ttymxc2
DHCOM (STD) UART 3 /dev/ttymxc4
I2C Interfaces
DHCOM I2C 1 /dev/i2c-1
DHCOM I2C 2 /dev/i2c-2
SPI Interfaces
DHCOM SPI 1 /dev/spidev1.0
DHCOM SPI 2 /dev/spidev2.0
Control the display brightness
echo <value> >/sys/devices/platform/imx-fb.0/backlight/imxfb-bl/brightness
- value range: 0..255
Control GPIOs
DHCOM Name: alt. DHCOM Name: Port: Pin: SO-DIMM Pin# Linux <GPIO#> GPIO A 2 12 154 44 GPIO B 3 21 156 85 GPIO C 2 4 162 36 GPIO D 2 5 163 37 GPIO E 2 6 164 38 GPIO F 2 7 165 39 GPIO G 2 8 167 40 GPIO H 2 9 173 41 GPIO I 3 17 175 81 CIF HSYNC GPIO J 1 10 74 10 CIF PCLK GPIO K 1 11 72 11 CIF MCLK GPIO L 1 8 70 8 CIF VSYNC GPIO M 1 9 68 9 CIF D9 GPIO N 4 21 66 117 CIF D8 GPIO O 1 7 64 7 CIF D7 GPIO P 1 6 62 6 CIF D6 GPIO Q 1 31 60 31 CIF D5 GPIO R 1 30 58 30 CIF D4 GPIO S 1 29 56 29 CIF D3 GPIO T 1 28 54 28 CIF D2 GPIO U 1 27 52 27
- Export
echo <GPIO#> >/sys/class/gpio/export
- Set direction
echo in >/sys/class/gpio/gpioXX/direction
echo out >/sys/class/gpio/gpioXX/direction
- Set value
echo 0 >/sys/class/gpio/gpioXX/value
echo 1 >/sys/class/gpio/gpioXX/value
- Get value
cat /sys/class/gpio/gpioXX/value
- unexport
echo <GPIO#> >/sys/class/gpio/unexport
Initialize and test CAN
- Initialize:
ip link set can0 up type can bitrate 500000
- Send test message via cansend (part of can-utils):
cansend can0 100#11.2233.44556677.88
- Receive message via candump (part of can-utils):
candump can0
- Get can-utils:
Test display / framebuffer
fb_1Colorfill
Fills the framebuffer device with a given RGB color Syntax: fb_1Colorfill [fb (0..31)] [Display Bits (1..8)] [Red value (0..255)] [Green value (0..255)] [Blue value (0..255)]
fb_fb2BMP
Copies framebuffer device data into a 24Bit BMP-File Syntax: fb_fb2BMP [fb (0..31)] [24-Bit BMP-File]
fb_LoadBMP
Loads a 24Bit BMP-file into a 32Bit framebuffer device Syntax: fb_LoadBMP [fb (0..31)] [24-Bit BMP-File] [Display Bits (1..8)] [Transparency (0..100)]
- In most common cases the "Display Bits" should be "8"
- Get DH framebuffer tools: