Я пытаюсь запустить программу, описанную здесь на Ubuntu 14.04.
Я плохо знаком с Linux и был бы очень признателен за справку в понимании этой программы к гибким дискам чтения-записи для моего Ensoniq EPS16 + выборка клавиатуры.
в описании epsread говорится:
epsread
Сценарий оболочки, который использует
fdrawcmd
считать диск EPS дорожка за один раз. Это выкладывает данные к stdout, так перенаправьте его в файл. Предупреждение: Это не проверяет, что диск отформатирован правильно, и это читает только из/dev/fd0
.Если Вы даете ему параметр записи, это вместо этого пишет диск EPS. Перенаправьте файл от stdin. Диск должен уже быть отформатирован правильно - он не проверяет это. И снова, это также только пишет в
/dev/fd0
.
#! /bin/sh
#
# File copyright Wade Bowmer, but you're free to use it as you like.
#
# Be sure to have a look at http://yceran.org/eps/
#
# Parameter checking CMD=read if [ "`basename $0`" == "epswrite" ] ; then CMD=write ; fi if [ "$1" == "read" ] ; then CMD=read ; fi if [
"$1" == "write" ] ; then CMD=write ; fi
# Do the actual work CYL=0 while [ $CYL -lt 80 ] ; do
fdrawcmd $CMD 0 $CYL 0 0 2 10 0x1b 0xff length=5120 rate=2 track=$CYL
# Second side fdrawcmd $CMD 4 $CYL 1 0 2 10 0x1b 0xff length=5120
rate=2 track=$CYL
CYL=$(( $CYL + 1 ))
done
Я получил последнюю версию fdutils
установленный очень хорошо. Я просто скопировал и вставил epsread сценарий оболочки в терминал. Затем это работало, и я понял, что понятия не имею, что я делаю.
Если кто-то мог бы обойти меня через то, что эта программа пытается сделать, я думаю, что это помогло бы мне сформировать следующие, более подробные вопросы, я должен попросить ступать к получению записи файлов, которые я имею к гибкому диску в Ensoniq EPS16 + формат.
Если мы можем выяснить, как заставить эту программу работать, она поможет большому количеству людей, которые находятся на Linux с несколькими различными клавиатурами Ensoniq, поскольку они совместимы друг с другом.
Вы исказили сценарий оболочки. Это должно быть:
#! /bin/sh
#
# File copyright Wade Bowmer, but you're free to use it as you like.
#
# Be sure to have a look at http://yceran.org/eps/
#
# Parameter checking
CMD=read
if [ "`basename $0`" == "epswrite" ] ; then CMD=write ; fi
if [ "$1" == "read" ] ; then CMD=read ; fi
if [ "$1" == "write" ] ; then CMD=write ; fi
# Do the actual work
CYL=0
while [ $CYL -lt 80 ] ; do
fdrawcmd $CMD 0 $CYL 0 0 2 10 0x1b 0xff length=5120 rate=2 track=$CYL
# Second side
fdrawcmd $CMD 4 $CYL 1 0 2 10 0x1b 0xff length=5120 rate=2 track=$CYL
CYL=$(( $CYL + 1 ))
done
Вот то, как это работает:
Во-первых, это устанавливает CMD
локальная переменная к"read
".
Затем если сценарий basename
"epswrite"
это устанавливает CMD
к"write
". Если 1-й параметр к сценарию"read
", CMD
установлен на"read
". Если 1-й параметр к сценарию"write
", CMD
установлен на"write
".
Локальная переменная CYL
установлен на 0
.
CMD
и CYL
переменные будут использоваться в генерации фактической команды для выполнения.
Цикл начинается! Пока условие $CYL -lt 80
(Значение CYL
меньше, чем 80
) верно, код оболочки между do
и соответствие done
будет повторен.
В цикле существует 3 команды. В первых двух, интерполяции значений для CMD
и CYL
создайте команды acutal, используемые для выполнения fdrawcmd
(См. man fdrawcmd
). В первый раз через цикл, команды будут:
fdrawcmd read 0 0 0 0 2 10 0x1b 0xff length=5120 rate=2 track=0
fdrawcmd read 4 0 1 0 2 10 0x1b 0xff length=5120 rate=2 track=0
#....CMD.^^^^ ^ CYL ^ CYL
Третья команда в цикле,
CYL=$(( $CYL + 1 ))
инкременты CYL
1
. Через некоторое время, $CYL -lt 80
не будет верно, и цикл закончится. Выполнение сценария оболочки возобновится после
done
строка.
Узнать что все те параметры к fdrawcmd
команда, читала man fdrawcmd
или копия онлайн
Так как гибкий патч включен в современные ядра магистрали, можно игнорировать этот сценарий и просто пользователя setfdprm/fdformat/dd
Проверьте это также: http://www.buchty.net/ensoniq/
Примите во внимание, что EPS16 + использует диски DD поэтому, если у Вас есть диски HD, необходимо покрыть дыру.
Короче говоря необходимо сделать:
mknod /dev/fd0eps b 2 120
setfdprm /dev/fd0eps ds dd sect=10 zerobased
затем Вы можете просто чтение-запись диски EPS с dd т.е.:
dd if=/dev/fd0eps of=file.dd
можно также отформатировать их как
fdformat /dev/fd0eps