Apresentamos no artigo anterior uma introdução da família de microprocessadores RZ/A1 da Renesas, detalhando suas principais características. Neste post iremos mostrar um tutorial completo de como gerar uma distribuição customizada de Linux Embarcado com Yocto para RZ/A1 da Renesas.
E essa distribuição será executada diretamente na memória Flash serial QSPI do kit, usando execute in place (XIP), disponível no microprocessador, sem a necessidade da imagem ser copiada para a memória RAM e ser então executada.
Inicialmente vamos apresentar o hardware utilizado.
Hardware
O kit utilizado para este tutorial é o RSK+RZA1 (Renesas Starter Kit para RZ/A1), que possui as seguintes características:
- SoC RZA1H – R7S721001
- Core ARM Cortex-A9@400 MHz
- 1000 DMIPS
- 10MB de SRAM On-Chip
- NAND Flash: 256MB (mas somente 64MB é endereçável)
- SDRAM: 32MB (IC24 no esquemático)
- NOR Flash: 16MB (IC23 no esquemático)
- Duas memórias Flash serial QSPI de 64MB cada (IC25 e IC26 no esquemático).
Confira alguns links úteis para estudo do kit:
O microprocessador possui uma memória SRAM on-chip de 10MB, e essa quantidade pode ser expandida usando a memória SDRAM externa de 32MB. No entanto, existe uma restrição na placa: usa-se ou a memória SDRAM externa ou a memória NOR externa. Veja as configurações necessárias:
- SDRAM: JP18 aberto e chave 3 do conector SW6 precisa estar em ON;
- NOR Flash: JP18 fechado e chave 3 do conector SW6 precisa estar em ON.
São disponibilizados os seguintes dispositivos de boot possíveis:
- NOR Flash;
- QSPI Flash;
- NAND Flash.
A seleção desse dispositivo é feita configurando o boot mode do RZ/A1H, indicado pela combinação dos pinos MD_BOOT0, MD_BOOT1 e MD_BOOT2, controlados pelo switch SW6 da placa.
Veja a configuração das chaves do conector SW6 e do jumper JP18 para seleção do dispositivo de boot:
|
Conector SW6 |
JP18 |
Dispositivo de boot | ||
|
MD_BOOT0 Switch 1 |
MD_BOOT1 Switch 2 |
MD_BOOT2 Switch 3 | ||
|
ON |
ON |
– |
Fechado |
NOR Flash |
|
OFF |
ON |
OFF |
– |
QSPI Flash |
|
OFF |
OFF |
OFF |
– |
NAND Flash |
Para usar a memória Flash serial QSPI como dispositivo de boot, fazendo uso do execute in place (XIP), precisamos ajustar o hardware da seguinte forma:
- JP18 fechado e;
- conector SW6 (chaves 1 a 6) precisa estar com a configuração OFF, ON, OFF, ON, ON e ON.
Agora chegou a hora de trabalharmos em cima da distribuição Linux Embarcado!
Software – Distro Linux construída com Yocto para RZA1
Existe uma página que reúne todos os tutoriais de software disponíveis para este kit, onde é possível fazer o download do documento AppNote: RZ/A1 Yocto Meta Layer. Esse indica todos os passos necessários para se criar e gravar uma distribuição Linux Embarcado com Yocto para RZA1. Ele foi utilizado como base para este tutorial.
A Renesas possui um layer oficial para seus BSPs, chamado meta-renesas-rza1.
Na época da escrita deste artigo, a versão de Yocto suportada é o fido.
Precisamos criar uma estrutura de diretórios para seguir o tutorial. Siga então os seguintes passos:
$ mkdir -p ~/work/rza1-bsp $ cd ~/work/rza1-bsp $ mkdir sources builds dl $ cd sources $ git clone -b fido git://git.yoctoproject.org/poky $ git clone -b fido git://git.openembedded.org/meta-openembedded $ git clone -b master git://github.com/renesas-rz/meta-renesas-rza1 $ cd .. $ source sources/poky/oe-init-build-env builds/build-fido-renesas-rza1
Altere o arquivo de configuração conf/local.conf para conter as seguintes variáveis:
MACHINE ??= "rskrza1-xip"
DL_DIR ?= "${TOPDIR}/../../dl"
PACKAGE_CLASSES ?= "package_ipk"
Altere a variável BBLAYERS dentro do arquivo de configuração de layers conf/bblayers.conf:
BBLAYERS ?= " \
${TOPDIR}/../../sources/poky/meta \
${TOPDIR}/../../sources/poky/meta-yocto \
${TOPDIR}/../../sources/poky/meta-yocto-bsp \
${TOPDIR}/../../sources/meta-openembedded/meta-oe \
${TOPDIR}/../../sources/meta-renesas-rza1 \
"
Execute o seguinte comando para criar todas as imagens necessárias:
$ bitbake rza1-console-demo-image
Veja a configuração de build resultante:
Build Configuration: BB_VERSION = "1.26.0" BUILD_SYS = "x86_64-linux" NATIVELSBSTRING = "Ubuntu-14.04" TARGET_SYS = "arm-poky-linux-gnueabi" MACHINE = "rskrza1-xip" DISTRO = "poky" DISTRO_VERSION = "1.8.2" TUNE_FEATURES = "arm armv7a vfp thumb neon callconvention-hard cortexa9" TARGET_FPU = "vfp-neon" meta meta-yocto meta-yocto-bsp = "fido:c9f0a99050ec0050f0dbcd55d0cd2ab18848113f" meta-oe = "fido:902964a4da26e46018d2a8d17dcdda1ac4627a39" meta-renesas-rza1 = "master:9819953cad2266e60002cdf0227bc4f0dd07f8da"
Veja os binários gerados pelo build em build-fido-renesas-rza1/tmp/deploy/images/rskrza1-xip:
henrique@henrique-550P5C-550P7C:~/work/rza1-bsp/builds/build-fido-renesas-rza1/tmp/deploy/images/rskrza1-xip$ ll total 40440 drwxr-xr-x 2 henrique henrique 4096 Nov 19 12:51 ./ drwxrwxr-x 4 henrique henrique 4096 Nov 19 15:16 ../ -rw-r--r-- 2 henrique henrique 294 Nov 19 12:51 README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt -rw-r--r-- 1 henrique henrique 1663 Nov 19 12:51 rza1-console-demo-image-rskrza1-xip-20161119141135.rootfs.manifest -rw-r--r-- 1 henrique henrique 4063232 Nov 19 12:51 rza1-console-demo-image-rskrza1-xip-20161119141135.rootfs.squashfs -rw-r--r-- 1 henrique henrique 4174398 Nov 19 12:51 rza1-console-demo-image-rskrza1-xip-20161119141135.rootfs.tar.bz2 -rw-r--r-- 1 henrique henrique 4364507 Nov 19 12:51 rza1-console-demo-image-rskrza1-xip-20161119141135.rootfs.tar.gz lrwxrwxrwx 1 henrique henrique 66 Nov 19 12:51 rza1-console-demo-image-rskrza1-xip.manifest -> rza1-console-demo-image-rskrza1-xip-20161119141135.rootfs.manifest lrwxrwxrwx 1 henrique henrique 66 Nov 19 12:51 rza1-console-demo-image-rskrza1-xip.squashfs -> rza1-console-demo-image-rskrza1-xip-20161119141135.rootfs.squashfs lrwxrwxrwx 1 henrique henrique 65 Nov 19 12:51 rza1-console-demo-image-rskrza1-xip.tar.bz2 -> rza1-console-demo-image-rskrza1-xip-20161119141135.rootfs.tar.bz2 lrwxrwxrwx 1 henrique henrique 64 Nov 19 12:51 rza1-console-demo-image-rskrza1-xip.tar.gz -> rza1-console-demo-image-rskrza1-xip-20161119141135.rootfs.tar.gz lrwxrwxrwx 1 henrique henrique 56 Abr 30 2016 u-boot.bin -> u-boot-rskrza1-xip-v2015.01+gitAUTOINC+c8daf55898-r0.bin* lrwxrwxrwx 1 henrique henrique 56 Abr 30 2016 u-boot-rskrza1-xip.bin -> u-boot-rskrza1-xip-v2015.01+gitAUTOINC+c8daf55898-r0.bin* -rwxr-xr-x 2 henrique henrique 269544 Abr 30 2016 u-boot-rskrza1-xip-v2015.01+gitAUTOINC+c8daf55898-r0.bin* lrwxrwxrwx 1 henrique henrique 64 Abr 24 2016 xipImage -> xipImage--3.14+git0+bed571e3dd-r0-rskrza1-xip-20160425020130.bin -rw-r--r-- 2 henrique henrique 7633 Abr 24 2016 xipImage--3.14+git0+bed571e3dd-r0-r7s72100-rskrza1-20160425020130.dtb -rw-r--r-- 2 henrique henrique 3259172 Abr 24 2016 xipImage--3.14+git0+bed571e3dd-r0-rskrza1-xip-20160425020130.bin lrwxrwxrwx 1 henrique henrique 69 Abr 24 2016 xipImage-r7s72100-rskrza1.dtb -> xipImage--3.14+git0+bed571e3dd-r0-r7s72100-rskrza1-20160425020130.dtb lrwxrwxrwx 1 henrique henrique 64 Abr 24 2016 xipImage-rskrza1-xip.bin -> xipImage--3.14+git0+bed571e3dd-r0-rskrza1-xip-20160425020130.bin
Gravação dos binários
Para gravação dos binários na memória Flash (serial QSPI) vamos precisar seguir alguns passos. Veja a seguir.
Download dos scripts
É preciso usar ferramentas da Renesas para gravação. Faça o download dos scripts com estes comandos:
$ mkdir -p ~/work/rza1-bsp/tools $ cd ~/work/rza1-bsp/tools $ git clone git://github.com/renesas-rz/rskrza1_bsp
Segger Lite JTAG Adapter
Vamos precisar do Segger Lite JTAG Adapter, que acompanha o kit RZ/A1 RSK. Além disso, é necessário instalar o driver J-Link, que pode ser obtido no site da Segger. No momento da escrita deste artigo foi utilizada a versão 5.12c no Ubuntu 14.04 64 bits.
Cópia dos binários
Agora que todas as ferramentas foram instaladas, precisamos indicar quais binários devem ser utilizados pelos scripts para gravação. Execute os seguintes comandos:
cp ~/work/rza1-bsp/builds/build-fido-renesas-rza1/tmp/deploy/images/rskrza1-xip/u-boot.bin ~/work/rza1-bsp/tools/rskrza1_bsp/Extra/J-Link_QSPI_Program/u-boot.bin cp ~/work/rza1-bsp/builds/build-fido-renesas-rza1/tmp/deploy/images/rskrza1-xip/xipImage ~/work/rza1-bsp/tools/rskrza1_bsp/Extra/J-Link_QSPI_Program/xipImage.bin cp ~/work/rza1-bsp/builds/build-fido-renesas-rza1/tmp/deploy/images/rskrza1-xip/xipImage-r7s72100-rskrza1.dtb ~/work/rza1-bsp/tools/rskrza1_bsp/Extra/J-Link_QSPI_Program/r7s72100-rskrza1.dtb.bin cp ~/work/rza1-bsp/builds/build-fido-renesas-rza1/tmp/deploy/images/rskrza1-xip/rza1-console-demo-image-rskrza1-xip.squashfs ~/work/rza1-bsp/tools/rskrza1_bsp/Extra/J-Link_QSPI_Program/rootfs.squashfs.bin
Gravação dos binários
O último passo é gravar os binários acima na memória do microprocessador. Conecte o adaptador Segger Lite JTAG e ligue a placa. Em seguida, execute os seguintes comandos:
cd ~/work/rza1-bsp/tools/rskrza1_bsp/Extra/J-Link_QSPI_Program ./Program_QSPI.sh
As seguintes opções devem ser exibidas:
OPTIONS 1 = Program u-boot 2 = Program Device Tree Blob 3 = Program Kernel (uImage) 4 = Program Kernel (xipImage) 5 = Program Rootfs (squashfs) 6 = Program Rootfs (axfs) 9 = Exit
Siga a seguinte sequência: 1, 2, 4, 5, 9.
Depois de gravadas todas as imagens, desligue a placa, remova o adaptador JTAG e conecte o cabo USB do seu PC no conector CN18, para monitoramento do console serial.
Inicie no seu PC seu monitor de serial preferido (minicom, picocom, etc) e ligue a placa. Assim será possível visualizar os dados de boot impressos na porta serial. Se usar minicom, execute o seguinte comando:
sudo minicom -D /dev/ttyACM0 -b 115200
Durante o boot do bootloader, pressione “Enter” para ter acesso ao seu console. Insira os seguintes comandos:
=> setenv bootcmd run x_boot => saveenv => boot
Veja o boot da placa abaixo:
U-Boot 2015.01 (Apr 30 2016 - 19:48:50)
I2C: ready
DRAM: 10 MiB
Flash: 64 MiB
SF: Detected S25FL512S_256K with page size 512 Bytes, erase size 256 KiB, total 64 MiB
In: serial
Out: serial
Err: serial
SPI Flash Memory Map
------------------------------------
Start Size SPI
u-boot: 0x00000000 0x080000 0
env: 0x00080000 0x040000 0
DT: 0x000C0000 0x040000 0
Kernel: 0x00100000 0x280000 0+1 (size*=2)
rootfs: 0x00400000 0x1C00000 0+1 (size*=2)
Net: sh_eth
Hit any key to stop autoboot: 0
SF: Detected S25FL512S_256K with page size 512 Bytes, erase size 256 KiB, total 64 MiB
SF: 8192 bytes @ 0xc0000 Read: OK
Current Mode: Read Mode (3-byte Addr)
SF: Dual SPI mode
SF: Detected S25FL512S_256K with page size 512 Bytes, erase size 256 KiB, total 64 MiB
New Mode: Quad I/O Read Mode (4-byte Addr)
Booting Linux...
Booting Linux on physical CPU 0x0
Linux version 3.14.28-ltsi (henrique@henrique-550P5C-550P7C) (gcc version 4.9.2 (GCC) ) #1 Sun Apr 24 23:07:31 BRT 2016
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c53c7d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: RSKRZA1
debug: ignoring loglevel setting.
Memory policy: Data cache writeback
On node 0 totalpages: 2560
free_area_init_node: node 0, pgdat c0030914, node_mem_map c09da000
Normal zone: 20 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 2560 pages, LIFO batch:0
CPU: All CPU(s) started in SVC mode.
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping off. Total pages: 2540
Kernel command line: console=ttySC2,115200 console=tty0 ignore_loglevel root=/dev/mtdblock0
PID hash table entries: 64 (order: -4, 256 bytes)
Dentry cache hash table entries: 2048 (order: 1, 8192 bytes)
Inode-cache hash table entries: 1024 (order: 0, 4096 bytes)
Memory: 9704K/10240K available (2329K kernel code, 132K rwdata, 604K rodata, 111K init, 135K bss, 536K reserved)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xc1000000 - 0xff000000 ( 992 MB)
lowmem : 0xc0000000 - 0xc0a00000 ( 10 MB)
.text : 0xbf000000 - 0xbf2dd704 (2934 kB)
.init : 0xc000a000 - 0xc0012000 ( 32 kB)
.data : 0xc0008000 - 0xc0031040 ( 165 kB)
.bss : 0xc0031040 - 0xc0052c94 ( 136 kB)
NR_IRQS:16 nr_irqs:16 16
sched_clock: 32 bits at 128 Hz, resolution 7812500ns, wraps every 16777216000000000ns
Console: colour dummy device 80x30
console [tty0] enabled
Calibrating delay loop (skipped) preset value.. 266.09 BogoMIPS (lpj=1041666)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
CPU: Testing write buffer coherency: ok
Setting up static identity map for 0x1f22dcf8 - 0x1f22dd50
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
pinctrl core: initialized pinctrl subsystem
DMA: preallocated 16 KiB pool for atomic coherent allocations
L310 cache controller enabled
l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x42020000, Cache size: 128 kB
No ATAGs?
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
bio: create slab <bio-0> at 0
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
sh_mtu2 sh-mtu2: ch0: used for clock events
sh_mtu2 sh-mtu2: ch0: used for periodic clock events
Advanced Linux Sound Architecture Driver Initialized.
futex hash table entries: 256 (order: -1, 3072 bytes)
squashfs: version 4.0 (2009/01/31) Phillip Lougher
msgmni has been set to 18
Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
io scheduler noop registered (default)
io scheduler deadline registered
io scheduler cfq registered
vdc5fb vdc5fb.0: vdc5fb.0: [gwp0700cnwv04] dotclock 33.325 MHz, dcdr 2
vdc5fb vdc5fb.0: update_regs timeout at 281 in vdc5fb_update_regs
vdc5fb vdc5fb.0: update_regs timeout at 281 in vdc5fb_update_regs
vdc5fb: Layer 2 Enabled (800x480)
vdc5fb vdc5fb.0: update_regs timeout at 281 in vdc5fb_update_regs
vdc5fb vdc5fb.0: update_regs timeout at 281 in vdc5fb_update_regs
vdc5fb vdc5fb.0: update_regs timeout at 281 in vdc5fb_update_regs
vdc5fb vdc5fb.0: update_regs timeout at 281 in vdc5fb_update_regs
vdc5fb vdc5fb.0: update_regs timeout at 281 in vdc5fb_update_regs
vdc5fb vdc5fb.0: update_regs timeout at 281 in vdc5fb_update_regs
Console: switching to colour frame buffer device 100x30
graphics fb0: registered vdc5fb.0 as 800x480 @ 55 Hz, 16 bpp.
SuperH (H)SCI(F) driver initialized
sh-sci.2: ttySC2 at MMIO 0xe8008000 (irq = 231, base_baud = 0) is a scif
console [ttySC2] enabled
physmap platform flash device: 04000000 at 18000000
Creating 1 MTD partitions on "physmap-flash.0":
0x000000800000-0x000004000000 : "qspi_rootfs"
physmap platform flash device: 04000000 at 00000000
physmap-flash physmap-flash.1: Could not reserve memory region
physmap-flash: probe of physmap-flash.1 failed with error -12
r8a66597_hcd r8a66597_hcd.0: USB Host Controller
r8a66597_hcd r8a66597_hcd.0: new USB bus registered, assigned bus number 1
r8a66597_hcd r8a66597_hcd.0: irq 73, io base 0xe8010000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: USB Host Controller
usb usb1: Manufacturer: Linux 3.14.28-ltsi r8a66597_hcd
usb usb1: SerialNumber: r8a66597_hcd
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
r8a66597_hcd r8a66597_hcd.1: USB Host Controller
r8a66597_hcd r8a66597_hcd.1: new USB bus registered, assigned bus number 2
r8a66597_hcd r8a66597_hcd.1: irq 74, io base 0xe8207000
usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: USB Host Controller
usb usb2: Manufacturer: Linux 3.14.28-ltsi r8a66597_hcd
usb usb2: SerialNumber: r8a66597_hcd
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver usb-storage
mousedev: PS/2 mouse device common for all mice
sh-rtc sh-rtc: rtc core: registered sh as rtc0
i2c /dev entries driver
ft5x06-ts 0-0038: ft5x06_init_panel: could not detect ft5x06
ft5x06-ts 0-0038: could not init touch panel
ft5x06-ts: probe of 0-0038 failed with error -5
i2c-riic i2c-riic.0: version 2013-04-19: 100[kbps]
at24 3-0050: 2048 byte at24 EEPROM, writable, 16 bytes/write
i2c-riic i2c-riic.3: version 2013-04-19: 100[kbps]
sh_mobile_sdhi sh_mobile_sdhi.1: mmc0 base at 0xe804e800 clock rate 66 MHz
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
sh_adc sh_adc.0: version 2013-06-12
rskrza1_alsa_soc_platform rskrza1_alsa_soc_platform.0: max9856-hifi <-> scux-pcm-audio.0 mapping ok
max9856 3-0010: ASoC: Failed to create SSI0 debugfs file
sh-rtc sh-rtc: setting system clock to 2016-11-19 15:01:22 UTC (1479567682)
ALSA device list:
#0: rskrza1-max9856
VFS: Mounted root (squashfs filesystem) readonly on device 31:0.
devtmpfs: mounted
Freeing unused kernel memory: 32K (c000a000 - c0012000)
Poky (Yocto Project Reference Distro) 1.8.2 rskrza1-xip /dev/ttySC2
rskrza1-xip login: root
root@rskrza1-xip:~#
root@rskrza1-xip:~# uname -a
Linux rskrza1-xip 3.14.28-ltsi #1 Sun Apr 24 23:07:31 BRT 2016 armv7l GNU/Linux
root@rskrza1-xip:~#
Veja que a memória RAM usada é a interna do SoC, de 10MB.
Executando o comando “top”:
Mem: 9016K used, 720K free, 28K shrd, 1452K buff, 3132K cached
CPU: 0% usr 0% sys 0% nic 99% idle 0% io 0% irq 0% sirq
Load average: 0.01 0.03 0.02 1/23 580
PID PPID USER STAT VSZ %VSZ %CPU COMMAND
577 1 root S 2832 29% 0% -sh
580 577 root R 2832 29% 0% top
578 1 root S 2660 27% 0% /sbin/getty 38400 tty1
570 1 root S 2656 27% 0% /sbin/klogd -n
1 0 root S 1684 17% 0% init [5]
245 2 root SW 0 0% 0% [kworker/0:1]
3 2 root SW 0 0% 0% [ksoftirqd/0]
9 2 root SW 0 0% 0% [kworker/u2:1]
239 2 root SW 0 0% 0% [kswapd0]
327 2 root SW 0 0% 0% [heartbeat]
6 2 root SW 0 0% 0% [kworker/u2:0]
8 2 root SW 0 0% 0% [kdevtmpfs]
304 2 root SW 0 0% 0% [kworker/u2:2]
2 0 root SW 0 0% 0% [kthreadd]
4 2 root SW 0 0% 0% [kworker/0:0]
5 2 root SW< 0 0% 0% [kworker/0:0H]
7 2 root SW< 0 0% 0% [khelper]
116 2 root SW< 0 0% 0% [writeback]
119 2 root SW< 0 0% 0% [bioset]
121 2 root SW< 0 0% 0% [kblockd]
Visualizando o conteúdo do arquivo /proc/meminfo:
root@rskrza1-xip:~# cat /proc/meminfo MemTotal: 9736 kB MemFree: 692 kB MemAvailable: 4272 kB Buffers: 1452 kB Cached: 3132 kB SwapCached: 0 kB Active: 2916 kB Inactive: 2016 kB Active(anon): 360 kB Inactive(anon): 16 kB Active(file): 2556 kB Inactive(file): 2000 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 364 kB Mapped: 884 kB Shmem: 28 kB Slab: 0 kB SReclaimable: 0 kB SUnreclaim: 0 kB KernelStack: 184 kB PageTables: 76 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 4868 kB Committed_AS: 1552 kB VmallocTotal: 1015808 kB VmallocUsed: 328940 kB VmallocChunk: 557052 kB
* Este post foi patrocinado pela Renesas e escrito por Henrique Rossi.






