(...)
sudo sed -i 's|interruptible_sleep_on_timeout.*|msleep_interruptible (RETRY_TIMEOUT);|g' /usr/src/wdtoken-1.0.0/wdtoken.c
sudo /usr/src/wdtoken-1.0.0/dkmsinstaller uninstall
sudo /usr/src/wdtoken-1.0.0/dkmsinstaller install
sudo /etc/init.d/wd_udk restart
sudo /usr/lib/watchdata/wdkserver/WdkmgrServer
Preciso que inicia com o boot sem usar comando sudo em terminal.
Tem como fazer um script que faz esse serviço, se sim onde colocar.
Se você já executou os comandos acima, não é preciso executá-los novamente, pois:
1) O comando
sudo sed -i 's|interruptible_sleep_on_timeout.*|msleep_interruptible (RETRY_TIMEOUT);|g' /usr/src/wdtoken-1.0.0/wdtoken.c corrige o código-fonte do arquivo
wdtoken.c, o que só é necessário fazer uma vez: depois disso o arquivo permanece modificado.
2) O comando
sudo /usr/src/wdtoken-1.0.0/dkmsinstaller uninstall desinstala o programa Watch Data Token Tool (doravante vou chamar esse programa de WDTT), já que o WDTT fôra compilado com o código-fonte antigo (errado). Se você executou este comando, então o WDTT "antigo" foi desinstalado e não há por que executar este comando novamente.
3) O comando
sudo /usr/src/wdtoken-1.0.0/dkmsinstaller install instala novamente o WDTT, porém desta vez a instalação irá compilar o programa usando aquele arquivo
wdtoken.c cujo código você corrigiu quando executou o comando do item 1. Enfim: a função deste comando é reinstalar o WDTT com o código correto. Se você já executou este comando, o "novo" WDTT já está instalado e não há por que executar este comando novamente.
4) Uma vez que o "novo" WDTT tenha sido instalado, é necessário executar o serviço dele. Isso é feito executando-se o comando
sudo /etc/init.d/wd_udk restart. Se você já executou este comando, então o serviço já está em execução, e assim continuará enquanto você não reiniciar o computador.
5) Eu não instalei o WDTT, mas, analisando os comandos acima, o serviço
wd_udk pelo visto é quem inicializa um servidor denominado
WdkmgrServer, que é o programa que permite gerenciar as conexões entre o computador e o token. Então, ao executar o comando
sudo /usr/lib/watchdata/wdkserver/WdkmgrServer você está manualmente executando esse servidor. Não vejo muita utilidade nesse comando, já que um
wd_udk bem configurado já executará esse servidor, mas enfim, se você já executou esse comando então não há porque executá-lo novamente.
6) ...mas, para que não seja necessário executar os comandos dos itens 4 e 5 a cada novo boot, é necessário configurar o systemd para inicializar automaticamente o serviço
wd_udk e o servidor
WdkmgrServer. Vou modificar um pouco o que o colega postou lá no link que você indicou. Ao invés de fazer o que ele fez, faça o seguinte:
6.1) Instale o GNOME Edit, caso ainda não o tenha instalado:
sudo apt-get install gedit -y
6.2) Exclua o arquivo
bbtoken.service preexistente:
sudo rm -f /etc/systemd/system/bbtoken.service
6.3) Use o GNOME Edit para criar o arquivo de serviço do bbtoken para o systemd:
sudo gedit /etc/systemd/system/bbtoken.service
6.4) Copie o texto abaixo e cole-o dentro do GNOME Edit:
[Unit]
Description=bbtoken
[Service]
Type=forking
ExecStartPre=/etc/init.d/wd_udk start
ExecStart=/usr/lib/watchdata/tools/WdkmgrServer
Restart=always
RestartSec=10s
[Install]
WantedBy=multi-user.target
6.5) Clique em "Salvar" e em seguida feche o GNOME Edit.
6.6) Peça ao systemd para ativar o serviço
bbtoken (que por sua vez executará o
wd_udk e também o
WdkmgrServer,
a cada boot):
sudo systemctl enable bbtoken
6.7) Peça ao systemd para inicializar o serviço
bbtoken:
sudo systemctl start bbtoken
Faça uns testes. Funcionou? Se sim, reinicie o computador e repita os testes, para ver se novamente funcionam. Se funcionarem, é porque o serviço está sendo corretamente inicializado durante o boot.