dxr3+αυτοματοποίηση διαδικασιών

Nikiforakis Manos manolios at auth.gr
Sun Sep 30 20:36:00 EEST 2001


Λοιπόν...
Αφού κατέβασα τα διάφορα περι xine, css drivers για dxr3-mpeg2 decoder κλπ 
και τα έκανα compile, κάθε φορά που θέλω να δώ dvd πρέπει να κάνω τα εξής:

1. να τρέχω ένα script το οποίο φορτώνει τα modules και είναι ως εξής:
#!/bin/sh

modprobe i2c-algo-bit

insmod eeprom.o
insmod adv717x.o
pixelport_16bit=1 pixelport_other_pal=0 swap_redblue_pal=0 color_bars=1
insmod bt865.o
color_bars=1
insmod em8300.o
use_bt865=1 bt865_ucode_timeout=1 dicom_fix=0 dicom_control=0 
dicom_other_pal=0

2. Να φορτώνω το microcode1.bin με τη βοήθεια ενός script 
($./microcode_upload.pl microcode1.bin) :
To script περιέχει τα εξής:
#!/usr/bin/perl

my @devs = ("/dev/em8300","/dev/em8300-1","/dev/em8300-2","/dev/em8300-3");
$_IOC_NRBITS    =  8;
$_IOC_TYPEBITS  =  8;
$_IOC_SIZEBITS  = 14;
$_IOC_DIRBITS   =  2;

$_IOC_NRMASK    = ((1 << $_IOC_NRBITS)-1);
$_IOC_TYPEMASK  = ((1 << $_IOC_TYPEBITS)-1);
$_IOC_SIZEMASK  = ((1 << $_IOC_SIZEBITS)-1);
$_IOC_DIRMASK   = ((1 << $_IOC_DIRBITS)-1);

$_IOC_NRSHIFT    = 0;
$_IOC_TYPESHIFT  = ($_IOC_NRSHIFT+$_IOC_NRBITS);
$_IOC_SIZESHIFT  = ($_IOC_TYPESHIFT+$_IOC_TYPEBITS);
$_IOC_DIRSHIFT   = ($_IOC_SIZESHIFT+$_IOC_SIZEBITS);

sub _IOC {
  local ($dir,$type,$nr,$size) = @_;

  ((($dir)  << $_IOC_DIRSHIFT) |
   ((ord($type)) << $_IOC_TYPESHIFT) |
   (($nr)   << $_IOC_NRSHIFT) |
   (($size) << $_IOC_SIZESHIFT));
}

sub EMCTL_IOCTL_INIT { _IOC(1,'C',0,8 );}
sub EMCTL_IOCTL_READREG { _IOC(3,'C',1,8);}
sub EMCTL_IOCTL_WRITEREG { _IOC(1,'C',2,8); }
sub EMCTL_IOCTL_GETSTATUS { _IOC(2,'C',3,shift)}

# Read microcode file
open (UCODE,"<$ARGV[0]") or die("Can't open microcode file: $ARGV[0]");
undef $/;
$ucode=<UCODE>;
close UCODE;

# Open device
foreach (@devs){
        open (DEV,"<$_") or exit(0);

# Prepare ioctl
$initparams = pack("PI", $ucode, length($ucode));

if(!ioctl(DEV, &EMCTL_IOCTL_INIT, $initparams)) {
  print "Microcode upload failed: $!\n";
  exit(1);
}

print "Microcode uploaded to $_\n";

close DEV;
}

Πώς μπορεί να αυτοματοποιηθεί αυτή η διαδικασία; Δηλαδή να φορτώνονται τα 
modules και το microcode1.bin κατά την εκκίνηση του Η/Υ;

Υ.Γ Όπως θα καταλάβατε δεν έχω ιδέα από compile kernel, init scripts κλπ Αν 
τα παραπάνω είναι standard διαδικασίες παραπέμψτε με σε κάποιο howto. 

Ευχαριστώ και ζητώ συγγνώμη για το μέγεθος του μυνήματός μου.
-- 
Nikiforakis Manos
Studing Physics in Aristotle University
email: manolios at auth.gr
homepage: http://users.auth.gr/manolios
(SOON GOING TO BE UPDATED)



More information about the Linux-greek-users mailing list