Использовать
echo "${string:index:length}"
для Вашего примера
x="ASDFQWER"
echo "${x:2:3}"
Попытайтесь использовать udev вместо HAL. Это более интегрируется с ядром и таким образом более согласовывающееся с аппаратной идентификацией. Если это работает правильно с udev, но Вы все еще хотите использовать HAL, можно портировать правило udev, которое соответствовало аппаратным средствам к HAL, пропуская проверку MAC и другой материал, который может заставить его работать неправильно.