Resetting a PC using the Reset Control Register

Last night I was reading a data sheet about the ICH10 I/O Controller Hub (Section 13.7.5) and got a little more insight on the workings of the Reset Control Register (port 0xcf9).

Bits 1 and 3 determine the type of reset being requested and bit 2 initiates the reset.   When bit 2 (SYS_RST) transitions from 0 to 1 a reset is initiated as determined by the policy of bits 1 and 3.

Bit 1, System Reset (SYS_RST) determines a soft reset (0) or hard reset (1).
Bit 3, Full Reset (FULL_RST) if set to 1 causes a full power cycle.

On some systems, the ACPI FACP RESET_REG and RESET_VALUE are set 0xcf9 and 0x06 respectively which essentially triggers a hard system reset when doing a reboot using the reboot=acpi kernel option.

The kernel also has a reboot=pci option that will force a reset via the Reset Control Register and does this in three stages. First it sets bit 1 (SYS_RST=hard reset), waits 50 microseconds and then transitions SYS_RST from 0 to 1 to initiate the reset.

However, a full system reset can be initiated by also setting bit three by writing 0x0e to port 0xcf9.  I’ve noticed that some newer laptops on the market seem to be doing a full system reset on reboot, so I wonder if this is the mechanism they are using nowadays.

The beauty of Linux is that one can string a bunch of commands together to do this from user space:

echo -e ‘\xe’ | sudo dd of=/dev/port bs=1 seek=3321

..so make sure you data is sync’d before hand as this is destructive as power cycling the machine while it’s on.

From Canonical

Linux: bash commands – Expansions

From Bash Pocket Reference and Advanced Bash−Scripting Guide

When you’re working with variations of a file—like backups or different file types—it can get tedious typing out the same commands with small tweaks. Using the brace symbols ({}), you can easily perform batch operations on multiple versions of a file.

Say you want to rename just part of a filename. Instead of typing out mv /path/to/file.txt /path/to/file.xml, you could just run:

mv /path/to/file.{txt,xml}

This runs the command with the same arguments, only with the parts inside the brace changed—the first part corresponding to the first argument, the second part corresponding to the second argument.

The most common example of this is when you’re backing up a file that you’re making changes to. For example, if you are tweaking your rc.conf, you’ll want to make a backup in case the new one doesn’t work. So, to do so, you can just run:

sudo cp /etc/rc.conf{,-old}

Putting nothing before the comma will just append -old to the filename after copying it with cp. If your new file doesn’t work out and you want to restore the backed up file to its original location, you can just use:

sudo mv /etc/rc.conf{-old,}

Moving the comma to the other end of the brace will remove -old from the end of the file and restore it to its original name.

The braces can also work when moving or creating multiple files at once. For example, if you wanted to create three numbered directories, you could just run:

mkdir myfolder{1,2,3}

This will create three folders: myfolder1, myfolder2, and myfolder3.

Linux: pmap command

Sometimes for me, when looking for which libraries was loaded by an application (mainly java libraries) I use on Linux a command that make the work easy; first of all, get the PID of the desired application:

$ ps -ef | grep java
ccardozo  3987 3964  2 11:10 pts/0    00:00:26 /opt/java/bin/java -Dprogram.name=run.sh -server…

Inspect it using pmap command…

$ pmap -x 3987 | grep jdbc
8dc02000       0       4       0 r-xs-  jboss-xa-jdbc.jar
8dc20000       0       4       0 r-xs-  tmp3817347529030789342jboss-xa-jdbc.rar
8dc21000       0       4       0 r-xs-  jboss-local-jdbc.jar
8dc22000       0       4       0 r-xs-  tmp7198301414175265274jboss-local-jdbc.rar
8dc23000       0       4       0 r-xs-  jboss-ha-xa-jdbc.jar
8dc24000       0       4       0 r-xs-  tmp3456161463617988766jboss-ha-xa-jdbc.rar
8dc25000       0       4       0 r-xs-  jboss-ha-local-jdbc.jar
8e600000       0       4       0 r-xs-  tmp9010150622292579202jboss-ha-local-jdbc.rar
8eb80000       0      12       0 r-xs-  jboss-common-jdbc-wrapper.jar

it’s all!

I Hack’n Rio

Divulgando – origem: http://www.riojug.org/?p=195

O maior evento de software livre do Rio de Janeiro: I Hack’n Rio

Aproveitando toda força e união que as comunidades de Software Livre têm de promover eventos no estado do Rio, a SL-RJ (Comunidade de Software Livre do Rio de Janeiro), em conjunto com as comunidades ArduInRio, Android In Rio, DojoRio, PHP Rio, PythOnRio, Rio.pm, RioJUG, RubyOnRio e Ubuntu-RJ, vêm apresentar o I Hack’n Rio !

Apesar da palavra “hacker” atualmente estar associada a uma pessoa que explora falhas de segurança em computadores e tenta prejudicar outros, no sentido original da palavra, ela designa alguém que é profundo conhecedor de algum assunto e utiliza maneiras criativas de resolver problemas. Por isso, o Hack’n Rio não é um encontro de usuários malignos de computador, mas sim de profundos estudiosos de computação, mais especificamente software livre, e pessoas que estão buscando este conhecimento.

A idéia do I Hack’n Rio surgiu quando os entusiastas de diversas comunidades de Software Livre se encontravam nos eventos promovidos pelo nosso estado, e sempre chegavam a uma mesma conclusão: está na hora de convergir. Convergir todos os eventos específicos de cada comunidade em um só grande evento, falar e fazer sobre tudo que se vê de novidades em cada tecnologia livre adotada em nosso estado.

O grande diferencial deste evento é que ele está sendo feito por todas as comunidades. E isto quer dizer que não há a centralização de tudo numa comissão organizadora só, mas sim a distribuição da organização. Cada comunidade contribuinte terá seu espaço no evento, para utilizar do melhor jeito que a mesma souber fazer.

O nosso objetivo é realizar um evento de elevado grau técnico onde todos os participantes tenham oportunidade de aprender como as tecnologias livres funcionam a fundo e também como contribuir para sua evolução.

Por isso, planejamos a seguinte estrutura:

  • Quando? 8 e 9 de abril de 2011
  • Onde? Cidade Universitária da UFRJ, na Ilha do Fundão
  • Quantas palestras? 28
  • Quantos mini-cursos? 8
  • E o que mais? Muita mão na massa com 2 salas abertas para hackfests, como Arduino Hack Day!

Você faz parte de uma das comunidades de software livre do estado? Então você também é parte do I Hack’n Rio !

Ajude a tornar o evento um sucesso procurando por patrocinadores, buscando por conteúdo relevante e chamando pessoas que fazem as coisas acontecerem – seja construindo coisas novas, seja contribuindo com projetos já existentes.

Algumas sugestões:

  • Patrocinadores: empresas que usam software livre e querem contribuir para sua evolução; empresas prestadoras de serviço ou desenvolvedoras de softwares livres que querem encontrar talentos para contratarem (as empresas podem até mesmo fazer uma espécie de “O Aprendiz” e oferecer vagas de empregos, se desejarem) e divulgar seu nome e serviços.
  • Conteúdo: não pense só em palestras e mini-cursos, pois isso temos em qualquer evento. Pense em encontros técnicos para correções de bugs ou desenvolvimento de novas aplicações ou novas funcionalidades para aplicações já existentes.

Ubuntu 11.04: Natty Narwhal Alpha 1 Released

Alpha 1 is the first in a series of milestone CD images that will be released throughout the Natty development cycle.  The Alpha images are known to be reasonably free of showstopper CD build or installer bugs, while representing a very recent snapshot of Natty. You can download it here:

http://cdimage.ubuntu.com/releases/natty/alpha-1/ (Ubuntu Desktop, Server)

Additional ISOs and torrents are also available.
https://lists.ubuntu.com/archives/ubuntu-devel-announce/2010-December/000793.html